2016-11-30 30 views
2

我們正在從Zookeeper遷移到Consul以管理動態鍵值配置。我們正在使用OrbitzWorldwide client,我們希望使用它的手錶功能來訂閱鍵值更改。但是,我們不確定如何做到這一點。使用OrbitzWorld的領事客戶端觀察Consul中特定密鑰的更改

Zookeeper對手錶提供本機支持。例如:

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(); 

是否有與該庫經驗的人在這裏,可以告訴我們如何用它來觀看上一個關鍵的變化?你能推薦一些其他客戶更好地支持手錶嗎?

回答

2

那麼,在與開發商OrbitzWorldwide覈對之後,客戶端負責重新啓動呼叫一次watchSeconds超時時間到達。測試並按預期工作。

該手錶基於Consul的blocking HTTP API,僅表示在密鑰更改或超時到達之前,呼叫被阻止。 OrbitzWorldwide的客戶會爲我們處理這些阻塞呼叫。