問題タブ [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.
caching - ZooKeeper を使ってみた人はいますか?
私は現在、サーバーのグループを調整する方法として memcached を調べていましたが、途中でApache の ZooKeeperに出会いました。面白そうですし、Yahooも使っているので悪くはないのですが、聞いたことがないので半信半疑です。他の誰かが試してみましたか?コメントやアイデアはありますか?
autoconf - autoconf/automake を非標準パッケージに向ける方法
RedHat Linux ボックスで ZooKeeper をビルドしようとしています。(ZooKeeper が正確に何であるかは、おそらく重要ではありません :-)
パッケージの指示に従うと、次のようになります。
CPPPUNIT を標準の場所にインストールできません。(ルート権限を持たないでください。システム チームには、標準構成から「逸脱しない」というポリシーがあります。)
configure.ac ファイル内の Tへの参照をコメント アウトすることでこの問題を回避しました
AM_PATH_CPPUNI
が、実際にやりたいことは、自分の個人用ディレクトリに CPPPUNIT をインストールしてそれを指すことですが、あまり効果がありません。 autoconf/auotmake システムに非標準の場所を探すように指示する方法を考え出す作業が進んでいます。それを行う方法についてのヒントはありますか?
java - Zookeeperの実際の使用
私は最近Zookeeperを見ていて、誰かが現在それを使用しているかどうか、そして彼らが保存のためにそれを具体的に何を使用しているか疑問に思いました。
最も一般的なユースケースは構成情報ですが、どのような種類のデータとどのくらいのデータを保存していますか?
osgi - Servicemix 4、DOSGi、およびZookeeper
これは、fusesourceフォーラムとservicemmixフォーラムからクロスポストされています。
DOSGiをFUSEで動作させることができません。私はCXFのDOSGi1.1-SNAPSHOTとZookeeperディスカバリーをFUSE4.1.0.2に取得しようとしています。Zookeepr3.2.1も使用しています。
すべてがFelix2.0.0で完全に機能します。DOSGi Discovery ページの指示に従って、DiscoveryDemoバンドルをインストールします。DOSGiの場合、DSWに はcxf-dosgi-ri-singlebundle-distribution-1.1-SNAPSHOT.jarを使用し、 cxf-dosgi-ri-discovery-singlebundle-distribution-1.1-SNAPSHOT.jarを使用します。 動物園の発見のために。次に、1台のマシンでサンプルサービスimplを使用してサンプルバンドルを開始すると、zookeeperでノードが作成されていることがわかります。次に、別のマシンでサンプルクライアントを起動すると、サービスマシンに出力が表示されます。よく働く。一部のXSDが見つからないため、xmlエラーが無視されるという警告がありますが、何にも影響がないようです。ああ、私も最初にOSGi大要バンドルをインストールする必要があります。
ヒューズに引っ越したとき、そんな運はありません。OSGi大要バンドルにはヒューズが付属しているので、それをインストールする必要はありません。dosgi-riシングルバンドルとdosgi-ri-discoveryシングルバンドルをインストールできるはずですが、それは機能しません。dosgi-riシングルバンドルには、servicemixを使用したあらゆる種類のオーバーラップバンドルがあります。ポート8081についてエラーが発生しますか?または、osgi.http.serviceパラメーターが何であれ、すでに使用されています。どうやら、dosgi-riシングルバンドルにはpax Webサービスが付属しており、servicemixに付属しているservicemixhttpサービスバンドルと同じプロパティを読み取ります。それは私がcxf-dosgi-ri-multibundle-distribution-1.1-SNAPSHOT.zipに切り替えるとき です解凍して、必要なパーツを取り出します。dosgi-riマルチバンドルからdswバンドルを取り出し、インストールします。jdomに依存しているため、運がありません。次に、riマルチバンドルに含まれているjdomをインストールします。これは正常に機能します。次に、dswに戻ると、インストールされるので、どこかに到達していると思います。戻って、ri-discoveryシングルバンドルをインストールします。開始すると、paxロギングサービスのclasscastexceptionが表示され、osgiログサービスなどにキャストできないと表示されます。しかし、これは単なるロギングエラーであり、下部にはhttp://schemas.xmlsoap.org/soap/httpのトランスポートクラスが見つからないと表示されます。。さて、ロギングが台無しになり、いくつかのトランスポートクラスが欠落しています。まあ、明らかにこれは、フェリックスで機能したため、riマルチバンドルから十分にインストールされていないことに起因します。だから、そこに他に何が必要なのか。検査時にcxf-minimal-bundleにクラスがないため、最後のエラーが発生します。だから私はそれをインストールします。ディスカバリーバンドルを開始しようとしましたが、ある種のcorbabroker例外が発生しました。Wtf。このすべてでcorbaを使用しているのは誰ですか?次に、戻ってすべてを元に戻し、riとri-discoveryのシングルバンドルディストリビューションを使い続けようとしますが、servicemixhttpサービスをオフにするだけです。これによりservicemixがクラッシュし、cxf jbiコンポーネントの依存関係が満たされないため、再起動できません。奇数。とにかくそれらを使用しないので、それを無視して、サンプルを開始しようとします。できる' ポートがすでに使用されているために桟橋を開始できないと表示されているため、サンプルを開始します。すでにservicemixhttpサービスをシャットダウンしているので、意味がありません。それから私は突堤を再開します。動作しますか?多分。サービスが登録され、Firefoxを使用してWSDLを参照できますが、zookeeperに登録されていません。ri-discoveryバンドルをシャットダウンして再起動しようとしましたが、nullpointerexceptionが発生します。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。すでにservicemixhttpサービスをシャットダウンしているので意味があります。それから私は突堤を再開します。動作しますか?多分。サービスが登録され、Firefoxを使用してWSDLを参照できますが、zookeeperに登録されていません。ri-discoveryバンドルをシャットダウンして再起動しようとしましたが、nullpointerexceptionが発生します。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。すでにservicemixhttpサービスをシャットダウンしているので意味があります。それから私は突堤を再開します。動作しますか?多分。サービスが登録され、Firefoxを使用してWSDLを参照できますが、zookeeperに登録されていません。ri-discoveryバンドルをシャットダウンして再起動しようとしましたが、nullpointerexceptionが発生します。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。どうやら、前述のエラーの1つが原因で、ri-discoveryが実際に起動することはありませんでした。それから私はri-discoveryシングルバンドルを分解して内部を引き抜こうとし始めました。中にはいくつかのライブラリがありますが、それがなくてもすべてが明らかに必要であるため、これは機能しませんでした。
話の終わり。それを動作させることができません。他の誰かがそれを機能させることができますか?SMX4でディスカバリーサンプルを実行したいだけです。バンドルの競合の問題だと確信しています。これはOSGiが修正することになっているものではありませんか?これは、依存しているjarを教えて、クラスパスを設定するよりも悪いです。少なくともその時、私は最終的に物事を実行するでしょう。
次のステップは、ri-multibundle、dswとjdom、およびri-discoverysinglebundleで再試行することだと思います。次に、いくつかのcxf-fuseバンドルまたはいくつかのcxf-rtバンドルを試して、soapトランスポートの問題を回避します。
メモの編集:DOSGiバンドルをアクティブ状態で表示するだけでは不十分です。あなたがそれらを通してサービスを公開しようとするまで、それらは実際には多くをしません。実行中のDOSGiDiscoverySampleのように、複数のマシンがzookeeperインスタンスにサービスを登録し、他のマシンがそれらのサービスを消費していることを確認する必要があります。
元のcxfバンドルの一部を削除してjettyサービスを再起動し、サンプルサービスを開始することで、前述の最小限のcxfバンドルを使用して、cxfに分散サービスサンプルをSOAPWebサービスとして公開させることができました...またはcxf最小バンドルをインストールし、サービスを開始し、すぐにcxf最小バンドルをアンインストールしてから、jettyを再起動します...それが注文だったと思います。これらはどちらもクリーンなスタートアップからは機能せず、DOSGiを機能させるための手順としてサービスを再起動する必要があるのは悪いことです。インストールしてからアンインストールすると何が起こるのかさえわかりません。アーティファクトが残ってはいけません。
java - 分散システムにおけるメッセージ パッシングとシグナリング
以下で構成される分散ビデオ分析システムがあります。
私の質問は、特徴抽出ブロックと複数の検出器の間の通信を、できればリアルタイムで行う方法ですか? 私はイベント バスを見てきましたが、それは 1 つのプロセスのためだけです。Hadoop の ZooKeeper はより良い解決策でしょうか?
私はJavaを使用しています。どんな提案でも大歓迎です。
java - Zookeeper / Chubby -vs- MySql NDB
私は最近、Paxosの論文、FLPの定理などを読み、プロジェクトのApacheZookeeperを評価しています。私はまた、Chubby(Googleの分散ロックサービス)と、オンラインで入手できるさまざまな文献を調べてきました。Zookeeperの基本的なユースケースは、分散システムのレプリケーションと一般的な調整を実装することです。
しかし、私はただ疑問に思っていましたが、ZookeeperまたはChubbyのような分散ロックシステムがテーブルにもたらす具体的な利点は何ですか。基本的に、MySQLNDBクラスターを使用できないのはなぜだろうと思っています。MySQLには多くのレプリケーションの問題があると聞き続けています。私は、このテーマについてより多くの経験を積んだ人が、それに光を当てることを望んでいました。
前もって感謝します..
私の要件の単純なリスト:
- 私は同種の分散システムを持っています。
- すべてのノードで一貫した状態を維持するための何らかの手段が必要です。
- 私のシステムはサービスを公開しており、クライアントとのやり取りは私のシステムの集合的な状態に何らかの変化をもたらします。
- 高可用性が目標であるため、ノードがダウンしてもサービスに影響を与えてはなりません。
- 私は、システムが少なくとも1000req/秒のサービスを提供することを期待しています。
- システムの集合的な状態はサイズに制限があると思います(基本的に挿入/削除は一時的なものになります...しかし定常状態では、多くの更新と読み取りが必要です)
locking - 動物園の飼育係-多くの人の1人をロックする
それぞれが一意の識別子を持つリソースのセットがあり、各リソース要素は使用する前にロックし、後でロックを解除する必要があります。アプリケーションのロジックは次のとおりです。
Zookeeperは、これらのロックを管理するための優れた候補のように見え、高速で復元力があり、クライアントの障害から回復するのは非常に簡単なようです。
誰かが私がこれを達成するためにZookeeperをどのように使用できるか考えることができますか?
locking - ZooKeeperとRabbitMQ/Qpidを一緒に-やり過ぎですか、それとも良い組み合わせですか?
ご挨拶、
マルチデータセンター分散システムのいくつかのコンポーネントを評価しています。(RabbitMQまたはQpidのいずれかを介して)メッセージキューを使用するため、エージェントは、アドレス指定、ルーティング、負荷分散、または再送信について心配することなく、他のエージェントに対して非同期要求を行うことができます。
多くの場合、エージェントは高度な同時アクセス用に設計されていないコンポーネントと対話するため、競合状態を回避するためにロックとエージェント間の調整が必要になります。また、エージェントまたはデータセンターの障害にシステムが自動的に対応するようにします。
上記のユースケースを念頭に置いて、ZooKeeperは適切であるように思われました。しかし、ZKとメッセージキューの両方を使おうとするのはやり過ぎではないかと思います。Zookeeperが行うことは、AMQPメッセージングを使用して自分のクラスターマネージャーで実行できるようですが、それを正しく行うのは難しいでしょう。一方、ZooKeeperを使用してメッセージキューを実装した例をいくつか見てきましたが、RabbitMQ/Qpidの方が自然に適していると思います。
誰かがこのような組み合わせを使用したことがありますか?
前もって感謝します、
-クリス
java - 分散シーケンス番号生成?
私は一般的に、過去にデータベースのシーケンスを使用してシーケンス番号の生成を実装しました。
たとえば、Postgres SERIAL タイプを使用http://www.neilconway.org/docs/sequences/
ただし、データベースがない大規模な分散システムのシーケンス番号を生成する方法については興味があります。複数のクライアントに対してスレッドセーフな方法でシーケンス番号の生成を達成するためのベストプラクティスの経験や提案はありますか?
python - Zookeeperでパスを再帰的に作成できますか?
私はZooKeeperをいくつかの同時実行管理のためのプロジェクトに引き込んでいます、そして私が最初に試したのは、私にとって非常に明白なものでした(zkpythonバインディングを使用して):
そして、私はNoNodeException
私のトラブルのために戻ってきました。
これを熟考し、ドキュメント(そのようなもの)を確認した後mkdir -p
、ZooKeeperが欠落している親ノードを作成するのと同等の方法を見つけることができませんでした。
私は何かが足りないのですか、それとも私が好きかどうかにかかわらず、パスの各部分に対して別々のcreate()を発行するのに行き詰まっていますか?