問題タブ [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 - ApplicationContextInitializer に相当するシャットダウン
ApplicationContextInitializer
実装で使用されているリソースを完全にシャットダウンするにはどうすればよいですか?
ApplicationContextInitializer
Curator プロジェクトを使用して Zookeeper に接続し、プロパティ ファイルを取得する実装を作成しました。Properties
次に、インスタンス aを作成し、それをPropertiesPropertySource
コンテキストに追加します。
close()
アプリケーションがシャットダウンしたときに、初期化子のメンバーであったCuratorFramework
インスタンスを呼び出せるようにしたいと考えています。これはどのように行うのが最善ですか?
Bean として使用できるように、CuratorFramework
インスタンスをコンテキストに渡すこともできますか?
java - Curator を使用して Zookeeper にパスが存在するかどうかを確認するにはどうすればよいですか?
私は現在、Zookeeper のものをアプリに統合するための開発の初期段階にあります。Zookeeper を扱うための API として Netflix の Curator を使用しています。私はそのほとんどの要点を理解しています (ZNode の追加など)。
しかし、ZNode が存在するかどうかを確認するにはどうすればよいでしょうか。動作するように見えるコードは次のとおりです。
...client
のインスタンスはどこですかcom.netflix.curator.framework.CuratorFramework
ただし、この呼び出しはオブジェクトを返しorg.apache.zookeeper.data.Stat
ます。
このオブジェクトを使用して、パスが存在するかどうかをどのように確認できますか?
ありがとう
java - キュレーター: トランザクションのコミット
Apache Curator の CuratorFramework クラスのインスタンスにより、ミューテーション操作を実行できますinTransaction()
。現在これらの呼び出しを使用していますが、コミットする方法がわかりません。
CuratorTransaction JavaDocを見ると、次のように明確に述べられています。
重要:が呼び出される
まで、操作は送信されません。CuratorTransactionFinal.commit()
ただし、CuratorTransactionFinal
クラスを実装していないインターフェイスです(私が見つけることができます)。
それを実装し、の機能を定義することは期待されていますcommit()
か?
それとも、より大きな概念が欠けていますか?
apache-zookeeper - Curator はいつ、なぜ ConnectionLossException をスローするのですか?
私は Curator 1.2.4 を使用していますがConnectionLossException
、1 つの znode の子の変更を監視したいときに取得し続けます。
次に、このようなウォッチャーを実装しました
が 10 秒に設定されているConnectionLossException
場合、コードは 11 秒ごとにスローします。connectionTimeout
例外はconnectionTimeout
プラス1秒のようです。なんで?
GetChildrenBuilderImpl が、1 秒ごとに接続状態をチェックする CuratorZookeeperClient の blockUntilConnectedOrTimeout メソッドを呼び出すことが判明したソース コードを確認しました。
apache-zookeeper - 飼育係の初期発見
レプリケートされたネーミング サービスとしてApache Zookeeper (またはCurator )を使用したいと考えています。3 つの Zookeeper サーバーを実行していて、これらのサーバーに接続できるさまざまなアプリケーションを備えた多数のコンピューターがあるとします。
ZooKeeper の IP アドレスをクライアントに伝えるにはどうすればよいですか? 各マシンに手動で配布する必要がある構成ファイルは?
Corba Naming サービスには、構成ファイルが不要な UDP ブロードキャスト検出のオプションがありました。Zookeeperにも同様の可能性はありますか?
transactions - zkClient.multi() を使用すると、ZooKeeper Java クライアント コードがハングする
私が欲しいもの:
- ZooKeeper でトランザクションを使用できるようにしたい
- 私は彼らが実際に完了することを望みます
ここで、最初に Apache (旧 Netflix) Curator ライブラリを使用してみましたが、例に従ってトランザクションを実行すると、次のようになります。
そして、そこに行き詰まるだけです(トランザクションにはアイテムが1つしかないため、txnは不要ですが、物事をシンプルに保とうとしています)。そこで、未加工の ZooKeeper API を使用して、より完全なテスト シナリオを作成することにしました。
また、印刷後に死人のようにぶら下がっています
Zookeeper サーバーに関しては、1 つのノードとして実行されているため、他のノードと競合する必要はありません。/foo はツリーに表示されません-zooinspectorを使用して確認します。トランザクションなしで ZK を使用すると、すべて正常に動作します。私は webz を探し回りましたが、関連するものは何も見つかりませんでした。明らかな何かが欠けていますか?
java - Curator トランザクション ランタイムの構築
ZooKeeperのApache Curator ライブラリは、優れた「流れるような」構文を使用します。たとえば、トランザクション内の複数のノードを変更するには、コードは次のようになります。
これはうまく機能し、私見ですが、非常に読みやすいコードを生成します。しかし、トランザクションで一連の ZNode を変更しなければならない状況があります。いくつのノード、またはどのノードを変更する必要があるかは、実行時までわかりません。したがって、流暢な構文を簡単に使用できるとは思いません。ドキュメントを見ると、各流暢なメソッド呼び出しが返すプロキシ オブジェクトを手動で管理できますが、コードでは 、 、 などを明示的に使用する必要CuratorTransaction
がTransactionSetDataBuilder
ありCuratorTransactionBridge
ます。
Curator でトランザクションを行う非流暢な方法は見当たりません。実行時にトランザクションを構築するための「良い」方法があるかどうか、および/またはあるかどうかを知っている人はいますか? 具体的には、Map<String, String>
ZNode パスからその ZNode で終了する必要があるデータへのマッピングが与えられた場合、すべてのノードをどのようにトランザクション的に設定しますか?