2016-05-18 5 views
0

自分のデータを格納するZookeeperサーバー(IPを知っています)があります。カスタムJavaアプリケーションを使用してそのデータを取得します。zookeeperクライアントを使用せずにznodeを読み取る

zkCliを使用せずに、/a/bのデータをシェルで取得する可能性はありますか?私は動物園のクライアントをインストールしていないので、さまざまな理由からインストールするのが煩雑です。

私はecho 'stat' | nc 10.xxx.yyy.zzz 2181のようなものをお探しですが、echo 'get /a/b' | nc .....は何も検索しません。

感謝:)

+0

ZooKeeperは、本質的にその中心的な目的にリンクされている複雑なプロトコルです。あなたが得ている答えが最新であることを確かめるために、文字通り*複数のサーバーと対話する必要があります。 –

+0

私が持っているコンテンツはめったに変更されないので、現在のバージョンのデータを入手することは本当に気にしません。私は情報を得る機会がありますか?ありがとうチャールズ:) – Costin

+0

Pythonを読んでいる場合は、https://github.com/python-zk/kazoo/blob/master/kazoo/protocol/serialization.pyを参照してください - 短い形式は、クライアントの操作を無視してもその答えが最新であることを知るために実行する必要があり、プロトコルはパックバイバイナリ形式であり、特にシェルでの実装には適していません。 –

答えて

1

のZooKeeperは、本質的にそのコアの目的にリンクされている理由のための複雑なプロトコルです:プロトコル準拠のクライアントは、受信した答えがあることを確認するために、複数のサーバと通信するために必要な最新の。

さらに、問題のプロトコルにはパックされたバイナリ構造が含まれているため、ネイティブシェルでの実装が不可能です。


私が示唆している:新しいソフトウェアをインストールに対するあなたの制限が何らかの方法で上流の飼育係のクライアントに固有の(例えば、Javaへの特定)している場合は、

  • を代替クライアントを考えるなど、zookeepercliまたは(あるPythonコードを書いてください)Kazoo
  • あなたは、このようにcurlncを許可する、HTTPまたはrawソケット上で結果を返す、ルックアップを実行するためにネイティブクライアントライブラリを使用して、あなたのZooKeeperサーバー上でサービスを実行することを検討、そうでない場合は保証を堅牢飼育係のプロトコルのレベルを必要としない場合あなたのスクリプトから別の場所で使用することができます。
+1

私はついにカズーをドッカーに使用しました。簡単な仕事。 Dockerfileにインストールするための2行、Pythonコードの4行、ノードを取得する。ありがとうチャールズ:) – Costin

関連する問題