我们正在从 Zookeeper 迁移至 Consul用于管理动态键值配置。我们正在使用 OrbitzWorldwide client我们想使用它的监视功能来订阅键值更改。但是,我们不确定如何执行此操作。
Zookeeper 原生支持 watch 。例如:
curator.getData()
.usingWatcher(watcher)
.forPath(path);
OrbitzWorldwide 的客户端中有支持监听器的KVCache 对象,但是需要的参数之一是watchSeconds,不清楚超时会发生什么?我们应该再次订阅吗?
使用 OrbitzWorldwide 客户端的示例代码:
KVCache kvCache = KVCache.newCache(consul.keyValueClient(), path, watchSeconds);
kvCache.addListener(new ConsulCache.Listener<String, Value>() {
public void notify(Map<String, Value> map) {
// Key changed
}
});
kvCache.start();
这里有没有人在这个库中有经验可以告诉我们如何使用它来监视 key 的变化?你能推荐一些其他对 watch 支持更好的客户吗?
最佳答案
好吧,在与开发人员确认后 OrbitzWorldwide ,客户端负责在 watchSeconds 超时后重新发起调用。经测试并按预期工作。
该 watch 基于 Consul 的 blocking HTTP API这仅仅意味着调用被阻止,直到 key 被更改或超时到达。 OrbitzWorldwide的客户端将为我们处理这些阻塞调用。
关于java - 使用 OrbitzWorld 的 consul-client 观察 Consul 中特定键的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40885028/