java - 使用 OrbitzWorld 的 consul-client 观察 Consul 中特定键的变化

标签 java key-value watch consul

我们正在从 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/

相关文章:

javascript - 在 Vue JS 中的不同组件中为数据变量设置观察者

javascript - Angular $watch 细微差别和工厂不反射(reflect)状态变化?

java - Java 中 double 的模数

python - 替换python中字典的值

java - 创建自定义注释来处理异常

javascript - 从值中更改具有一个属性的对象的键

python - 来自现有字典值的新字典

c - 如何在 IAR IDE Watch 窗口中通过指针显示数组范围?

couchdb - 如何从 couchdb 获取所有文档以某个单词开头。轻沙发有可能吗?

java - 如何通过Java类在andoridmanifest.xml中添加权限?