我和我的同事当前在Consul ACL中遇到问题。我们在A位置有一个ACL主数据中心,在B位置有另一个数据中心与之连接,并有一个与C相连的客户端C。我们在A中设置了一个KV ACL并验证它在C中是否可用。在/etc/consul.d/consul.json中将acl.policy_ttl设置为(例如)1800s或259200s。然后,我们关闭A并验证我们仍然可以从C访问(写入)KV存储。在某个看似随机的时间之后,当从C写入KV时,我们开始收到消息“找不到ACL”。我们将其配置为可靠地将ACL缓存在B中固定的一段时间,以便在A不可用时C仍可以使用KV存储吗?
我们当前的领事版本是1.4.4。您在此问题上可以提供的任何帮助,我们将不胜感激。
答案 0 :(得分:0)
您还需要设置acl.token_ttl
(documentation)acl.policy_ttl
缓存策略,但是acl.token_ttl
设置发布的ACL令牌的缓存,这也是您想要的。通过edfault,此Token TTL
是30秒,所以我想在您的情况下random time
不到1分钟(数据中心B缓存了30s,客户端C缓存了30s)。>
希望有帮助。