問題タブ [apache-curator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - CuratorFramework のメソッドの開始時と終了時に呼び出す必要がありますか?
ドキュメントによると
CuratorFramework インスタンスは完全にスレッドセーフです。アプリケーションの ZooKeeper クラスタごとに 1 つの CuratorFramework を共有する必要があります。
また、他の操作を実行する前にstartメソッドを呼び出す必要があることも示しています。このメソッドは、すべての操作の前に呼び出す必要がありますか、それとも初期化後に 1 回呼び出すだけで十分ですか?
java - curator を使用して ZooKeeper の子孫ノードでイベントを監視する方法は?
ノードの監視を維持する必要があるプロジェクトに取り組んでおり、そのノードの子も同様です。PathCache を使用してみましたが、ここで子の子を監視する方法がわかりませんか?
ここに私のルート ノードが"/my/test"
あります。以下のコードを使用して、そのノードを監視しています。私がやりたいことは、"/my/test"
znode を監視することです。これらのノードがルート ノードに追加されたとします。
次に、通知を受け取る必要があります(この部分までは機能させることができます)が、新しいノードが追加、更新、または削除された場合は"/my/test/test1"
、通知も受け取る必要があります。これは、方法を理解できない部分ですそれを機能させます。"/my/test/test2"
"/my/test/test3"
、"/my/test"
などに新しいノードを追加するたびに、以下のコードを使用してウォッチがトリガーされます。しかし、新しいノードをまたはに追加すると、監視がトリガーされず、そのためのコードを追加する方法もわかりませんか? これを行う方法はありますか?"/my/test/test1"
"/my/test/test2"
"/my/test/test3"
"/my/test/test1"
"/my/test/test2"
誰かが過去にこれをやったことがあるかもしれません..だからどんな例でも私にとって大きな助けになるでしょう..
以下は、子供に対しては正常に機能しますが、など"/my/test"
の子供に対しては機能しない私のコードです。"/my/test/test1"
以下は私の addListener メソッドです -
私のユースケースでこれの簡単な例を誰かが提供できますか? 最近リリースされた Curator 2.4.0 を使用しています。
apache-zookeeper - 設定管理のためにキュレーターで Zookeeper を使用する方法は?
設定管理に Zookeeper を使用する方法について読み続けています。
Zookeeper と簡単にやり取りするための Apache Curator があることは知っています。
一連のリソースに接続されているクライアントがいくつかあります。そして、それらのリソースを同じように使用する必要があります。リソース間のシャーディングやマスター選出のようなもの。
リソースの 1 つがダウンしていることにクライアントが注意した場合、クライアントが構成を変更し、他のクライアントがすぐに新しい構成の使用を開始できるように、zookeeper を使用したいと考えています。
そのため、1 つのクライアントが Zookeeper の znode のパスに構成を書き込み、他のクライアントがそのパスを監視します。
キュレーターでデータを設定する方法:
キュレーターでパスを監視する方法:
ここで、パスの値が変更され、ウォッチがトリガーされると、パスの新しい値を取得する必要があります。それ、どうやったら出来るの?
これは常に process() 内で null を返します
その他の質問:ドキュメントに記載されているように、新しい値を取得した後、ウォッチャーを再度設定する必要がありますか?
ウォッチャーのソース:
java - Zookeeper がサポートする共有マップ (小さな KeyValue ストレージ)
Hadoop MapReduce
「生きている」小さなキー値ストレージを共有する必要があるアプリケーション (ジョブ) がたくさんあります。実際には、ジョブの進行中にいくつかの文字列基準に基づいて生成される文字列 ID についてです。
したがって、変更可能な共有のように見えMap<String,String>
、値はMapReduce
ジョブコンポーネント間で共有されます(私の場合はマッパーですが、問題ではありません)。
目に見えるアプローチはApache ZooKeeper
. このサービスはすでにHadoop
クラスターで利用できます。この場合に必要なのは、信頼性ZooKeeper
の高いKeyValue
ストレージです。現在、宣言されたアプリケーションの 1 つと見なされますが、適切な実装は見られません。なにか提案を?この場合、エフェメラル ノードが必要であることがわかります (MapReduce ジョブの有効期間は限られているため)。
私が現在最良の選択肢として見つけたのは、必要なもののように見えるクラスをCurator
含むフレームワークです。SharedValue
しかし、レシピでも例でも、それを使用した例は見当たりません。例はありますか?
この問題に対する他の優れた実装アプローチまたはすぐに使えるソリューションはありますか? 前もって感謝します。
java - キュレーター (飼育係ライブラリー) 呼び出しを Java の同期関数内にラップする必要がありますか、それともやり過ぎでしょうか?
マシン間のプロセス間ロックのために、zookeeper の curator ライブラリを使用しています。ロックを作成し、作業を実行してからロックを解除する関数は 1 つだけです。この関数で synchronized キーワードを使用して、同じマシン上のスレッドがこの関数をシリアルに呼び出すようにし、それによって ZooKeeper への呼び出しを最小限に抑える必要がありますか?