2016-11-30 14 views
2

動的キーと値の設定を管理するために、ZookeeperからConsulに移行中です。 OrbitzWorldwide clientを使用しており、キー値の変更を購読するための時計機能を使用したいと考えています。しかし、私たちはこれをどうやって行うのかよくわかりません。OrbitzWorldの領事クライアントを使用して領事の特定のキーの変更を見る

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タイムアウトに達すると、クライアントはコールを再開する責任があります。テストされ、期待どおりに動作します。

時計は領事のblocking HTTP APIに基づいています。これは単に、キーが変更されるかタイムアウトに達するまでコールがブロックされていることを意味します。 OrbitzWorldwideのクライアントがこれらのブロックコールを処理します。

関連する問題