問題タブ [apache-zookeeper]
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.
google-app-engine - クラウドでアプリケーションの複数のインスタンスを作成する方法
GoogleCloudまたはEC2のいずれかでアプリケーションの複数のインスタンスを作成したかったのです。これに関して2つの質問があります
1.これを達成する方法は?
- zookeeperを使用して仮想インスタンスを作成できますか?
java - HBase への接続と永続化
java クライアントを使用して、cloudera-vm の一部である hbase に接続しようとしました。
(192.168.56.102 は vm の inet IP です)
ホストのみのネットワーク設定で仮想ボックスを使用しています。
これで、hbase マスター @ http://192.168.56.102:60010/master.jspの webUI にアクセスできます。
また、私のJavaクライアント(VM自体でうまく機能した)は、192.168.56.102:2181への接続を確立しました
しかし、getMasterを呼び出すと、接続が拒否されます。ログを参照してください。
hbase-site.xml:
persistence.xml:
TestDAO.java:
VM で実行されているネットワーク サービスを追加するだけです (netstat -ntpl):
udp - 分散サーバーのインスタンス間のデータ ブロードキャスト
特定のアプリケーションでのサービス「名簿」の推奨事項に関するフィードバックを得ようとしています。クライアントとの永続的なソケット接続を維持するサーバー アプリがあります。分散インスタンスをサポートするサーバーをさらに開発したいと考えています。サーバー "A" は、他のオンライン サーバー インスタンスにデータをブロードキャストできる必要があります。他のすべてのアクティブなインスタンスについても同様です。
私が調査しようとしているオプション:
- Redis / Zookeeper / Doozer - 各サーバー インスタンスはそれ自体を構成サーバーに登録し、接続されているすべてのサーバーは構成の変更に応じて構成の更新を受け取ります。じゃあ何?
- 各サーバー インスタンスとのエンド ツー エンド接続を維持し、送信データごとにリストを反復処理しますか?
- 一部のカスタム UDP マルチキャストですが、その上に独自の信頼性を追加する必要があります。
- カスタム メッセージ ブローカー - 各サーバーが接続して通知するときにレジストリを実行および維持するサービス。各サーバーとの接続を維持してデータを受け入れ、それを他のサーバーに再ブロードキャストします。
- 各サーバー インスタンスが直接ブロードキャストするだけで、名簿が維持されない、信頼性の高い UDP マルチキャスト トランスポート。
ここに私の懸念があります:
- Zookeeper や doozer などの外部アプリに依存することは避けたいと思っていますが、それが最善の解決策である場合は明らかにそれらを使用します
- カスタム メッセージ ブローカーでは、スループットがボトルネックになることは望ましくありません。つまり、複数のメッセージ ブローカーを実行し、スケーリング時にロード バランサーを使用することも必要になる可能性があるということですか?
- マルチキャストは、自分でロールすることができれば外部プロセスを必要としませんが、それ以外の場合は、おそらく ZMQ を使用する必要があり、これも依存の状況に陥ります。
メッセージ配信についても話していることは理解していますが、それは私が使用するソリューションと密接に関連しています。ところで、私のサーバーは Go で書かれています。スケーラビリティを維持するための最も推奨される方法に関するアイデアはありますか?
* 目標の編集 *
私が本当に求めているのは、次の条件を考慮して、分散サーバーのインスタンス間でブロードキャスト データを実装する最良の方法は何かということです。
- 各サーバー インスタンスは、リモート クライアントとの永続的な TCP ソケット接続を維持し、それらの間でメッセージを渡します。
- メッセージは、関連するクライアント接続に配信できるように、実行中の他のインスタンスにブロードキャストできる必要があります。
- メッセージングは高速になる可能性があるため、低レイテンシーは重要です。
- 順序と信頼性が重要です。
*質問の要約を更新*
複数のサーバー/複数のエンドポイントがあり、相互にパブリッシュ/サブスクライブする必要がある場合、それらの間の推奨される通信モードは何ですか? 検出されたサーバーの名簿にメッセージを再発行するための 1 つ以上のメッセージ ブローカー? 各サーバーから直接、信頼できるマルチキャスト? 分散システムで複数のエンドポイントを接続し、遅延を低く、高速で、配信の信頼性を維持するにはどうすればよいでしょうか?
eclipse - OSGi Remote DS 製品構成は Eclipse 内でのみ機能します
Java JDK 1.6、Windows XP SP3 で Eclipse STS 2.7.2 に取り組んでいます。認証が必要なプロキシの背後で作業しています。
DS と Zookeeper ディスカバリーを使用して動作する 2 つの単純なクライアントとサーバーのプラグインを作成しました。これらは、3 番目のプラグインにバンドルされている IHello インターフェイスを参照しています。
サーバーは、192.16.23.28:6666/hello で呼び出されたときに文字列「hello」を返す単純な Hello サービスを公開し、VM 引数で Zookeper を開始します。
xml は次のとおりです。
クライアントは、VM 引数を使用して Zookeeper を開始します
どちらの場合も、OSGi フレームワークは-console -consoleLog -clean
引数で開始されます。
次に、サーバーとクライアントの両方に 2 つの個別の実行構成を作成し (Run as-> run configuration..)、必要なすべてのバンドル (最も重要なもの:org.eclipse.ecf.provider.remoteservice
とorg.eclipse.ecf.provider.zookeeper
) とそれらの依存関係を追加しました。
その構成に基づいて、クライアントとサーバーの両方に対して 2 つの別個の製品構成 (新規 -> 製品定義 -> 実行構成の選択) を定義しました。
ここで、それぞれの製品構成内の [Launch an Eclipse application] リンクをクリックしてそれらを実行すると、すべてが機能します。サーバーはサービスを公開し、クライアントはそれを取得して出力に「Hello」を表示します。netstat -a | grep 6666
誰かがそのポートでリッスンしていることをnetstat -a | grep 30
示し、ポート 3030 と 3031 が使用されていることを示しています。
Eclipse はプロキシを正しく使用するように構成されています。
前述の構成 (エクスポート -> Eclipse 製品 -> 製品構成の選択) に基づいてそれらを Eclipse 製品としてエクスポートすると、クライアントとサーバーの 2 つのフォルダーが作成されます。
config.ini
それらの内部には、フレームワーク ( ) と VM ( ) の両方の構成ファイルを含む、外部 OSGi フレームワーク内でアプリケーションを実行するために必要なすべてが含まれていますeclipse.ini
。
アプリケーションが開始STS.exe -console
され、必要なすべてのバンドルがインストールされて開始された OSGi コンソールが開きます。
サーバーを起動すると、誰かが 6666 をリッスンし、Zookeeper がサービスが公開されたことを報告しているのが見えます。
クライアントを起動しても何も起こりません。出力なし、3030 と 3031 の接続なし、エラーなし。それは単に何もしませんが、飼育係は発見を開始したと言います。
IP の代わりに localhost を使用しても何も変わりません。Eclipse 内では機能しますが、外部では機能しません。
c++ - JavaのないApacheZookeeperのようなものですか?
Zookeeperのように機能するが、Javaの依存関係がないライブラリまたはプロジェクトはありますか?私はこれを組み込みLinuxシステムに配置することを検討しており、必要なフットプリントは最小限です...メガバイト以下のようなものです。私はLua、C、C ++のランタイムを持っており、必要に応じてNewLISPのようなものをそこに置くことができます。ほとんどまたはすべてのクライアントはCまたはC++であり、シェルスクリプトを利用するための優れたコマンドラインユーティリティも役立ちます。 http://zookeeper.apache.org/
eclipse - Zookeeper Zoodiscovery の集中型および複製モードを構成する
Zookeeper を集中型および複製型の Zoodiscovery モードで動作するように構成する際に問題があります。http://wiki.eclipse.org/Zookeeper_Based_ECF_Discoveryのガイドは、それについて少し不思議です。
私は、Windows XP SP3、Java JDK 1.6、Eclipse STS 2.7.2、org.eclipse.osgi 3.7、およびプロキシされたネットワークに取り組んでいます。
注: スタンドアロン構成モードを使用しても問題はありません。サーバーで-Dzoodiscovery.flavor.standalone=192.168.23.21:3030;clientPort=3031を使用し、 -Dzoodiscovery.flavor.standalone=192.168.23.28:3031;clientPort=3030を使用すると、うまく機能します。
質問を複数の部分に分割します。
1) 192.168.23.28 に (1 つの) 中央サーバー、複数のクライアントがあるセットアップ。クライアントは、サービスの発行と消費の両方を行います。
サーバーを次のように起動します。
ZooDiscovery> Discovery Service Activatedが表示されます。
クライアントを起動すると (この例では 1 つしかありません)、次のようになります。
ZooDiscovery > Discovery Service Activatedが表示されます。しかし、INFO - サーバーへの接続を試みています: /192.168.23.28 何度も何度も成功しません。
コマンド ラインから Zookeeper を構成してサーバーとクライアントを起動する必要があります。これらのパラメーターをバンドル内に挿入することはできません。サーバーで-Dzoodiscovery.clientPort=8888 (8888 が利用可能) を設定してから、クライアントで-Dzoodiscovery.flavor=zoodiscovery.flavor.centralized=192.168.23.28:8888を設定しようとしましたが、それでも何も変わりません。
このようなセットアップを構成するにはどうすればよいですか?
2)さらに、集中型を使用して、複数の中央サーバー間で通信することが可能かどうか、または複製モードを使用する必要があるかどうかを知りたいです。
3) これにより、VM コマンド ライン引数を渡すことによってサーバーとクライアントがレプリケート モードを使用するように構成するにはどうすればよいですか?
4) レプリケート モードで、後で新しい Zookeeper インスタンスを追加する場合、既存の Zookeeper インスタンスを停止して、新しいものと連携するように再構成する必要がありますか? それとも、既存の Zookeeper インスタンスと連携するように新しいものを構成するだけで十分ですか?
どうもありがとうございました、
乾杯
visual-studio - Apache Zookeeper のネイティブの win32 クライアント実装はありますか?
私は Apache Zookeeper を評価しようとしています (これは本当にクールに見えます)。クライアントの win32 ネイティブ実装はありますか?
ネイティブを明確にしましょう。Cygwin や Linux テクノロジのポートに依存するものではありません。つまり、Visual Studio (2005) でビルドできる 100% win32 実装です。
乾杯リッチ
java - Zookeeper と Thrift を使用して負荷分散されたサービス
多くの変換を行うために使用される計算集約型のサービスがあります。その大部分が計算に縛られた (CPU に縛られた) プロセスです。基本的に何が起こるかというと、Thrift を介して処理サービスにメッセージを送信するメッセージ ブローカーがあります。
現在、メッセージを処理するために異なるアルゴを実行する複数の異なる処理サービスがあります。これらのメッセージは、1 つ以上の処理アルゴにルーティングされます。メッセージ量は可変であり、処理アルゴリズムのニーズも同様です (つまり、XYZ を含む多くのメッセージを取得してアルゴ 1 に送信し、それ以外の場合はアルゴ 2 に送信できます)。
これを水平方向に拡張できるものに拡張したいと考えています。そのため、処理アルゴリズムを実行している複数のノードがあります。ここで、メッセージングの負荷に応じて、Thrift リクエストを異なるサーバーに送信する必要があります (すべてのサービスが各処理 Algo1 から 3 のインスタンスを実行していると仮定します)。たとえば、アルゴ 1 で処理したい大量のメッセージを取得し、アルゴ 1 を実行する 2 つのサーバーがあり、3 番目のサーバーが他の 2 つのアルゴ (アルゴ 2 & 3) の要求を処理するとします。
したがって、システムは次のようになります。
すべてのプロセスは Java で記述されています。
では、Zookeeper を使用してこのような設定を行うのはどれほど簡単でしょうか。アルゴを追加または変更するときに、Zookeeper を使用して構成側を簡単に処理できることはわかっています (つまり、サーバーはアルゴの更新または追加をリッスンし、構成されたとおりに提供します)。
乾杯!
hbase - 動物園の飼育係で接続数を確認する方法
ユリを駆け抜けるmのように、飼育係が走っている接続数を見たいので、例外ですが、飼育係の接続数を確認したいです。
http://zookeeper.apache.org/doc/r3.1.2/zookeeperStarted.html
apache-zookeeper - Zookeeper の「java.net.ConnectException: 接続が拒否されました」
次のように Zookeeper をインストールしました。
これが私のものzoo.cf
です:
そしてによって始められた
そしていつ私は?
それは私にこのエラーを与えます: