問題タブ [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.
mysql - int32 および int64 サイズの一意のプライマリ ID を生成する
Java と分散 noSQL DB(Cassandra) を使用してソーシャル Web アプリケーションを開発しています。 アプリケーションの新規ユーザーと投稿の ID を、それぞれ 32 ビットと 64 ビットのサイズで生成する必要があります。
分散プラットフォーム上に構築されているため、ID/キーを生成する問題はやや複雑になっています。Zookeeper/ や twitter の Snowflake など、この問題を軽減するのに役立つソリューションが登場しましたが、これらのソリューションは簡単に使用できるようには見えません。
これらのソリューションをトップ レベルの視点から見た後、最もシンプルで最も成熟したソリューションを採用していると感じました。flickr のチケット サーバーのように MySQL データベースを使用することは、最も簡単な解決策であると思われるため、最初の優先事項として思い浮かびます。
http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/
分散システムの周りに SPOF が作成されることはわかっています..しかし、初期の頃 (資本と人員のリソースが少ないとき) には、これが最も簡単なソリューションであると信じています。アプリケーションが大きくなっても、重いデータを転送する必要がないため、切り替えは難しくないと思います。したがって、私のアプリケーションの初期段階では、MySQL が Id を生成するための最良かつ最も簡単な方法で役立つと思います。
この選択の主な要因:-
SPOF を除去するために、最初は 1 台の MySQL サーバーを使用し、後で flickr のソリューションとして 2 台のサーバーに切り替えることを考えています。
Zookeeper や Snowflake などの代替ソリューションに切り替えることを検討したときに、後でどのような問題が発生する可能性があるかを誰かが指摘できますか? または、提案されている現在のアプローチの欠点は何ですか?
ありがとうございました!
distributed-computing - ZooKeeperを使用してタスク分散を設計する方法
ワーカープロセスを分散させるアプリケーションを作成する予定です。それらの1つは、他のプロセスにタスクを割り当てるリーダーになります。リーダー選出プロセスの設計は非常に簡単です。各プロセスは、同じパスにエフェメラルノードを作成しようとします。成功した人は誰でもリーダーになります。
さて、私の質問は、タスクを均等に分散するプロセスをどのように設計するかです。このためのレシピはありますか?
環境設定について少し詳しく説明します。
10人の労働者の機械があり、それぞれがプロセスを実行し、そのうちの1つがリーダーになるとします。タスクはキューに送信され、リーダーはそれらを取得してワーカーに割り当てます。タスクが送信されるたびに、ワーカープロセスに通知が送信されます。
c++ - とにかく、GDBのブレークポイントにいる間、1つのアプリケーションスレッドを続行できるようにすることはできますか?
Apache Zookeeper Cランタイムライブラリを使用してアプリケーションをデバッグしているときに、GDBのデフォルトのオールストップモードでブレークポイントを設定すると問題が発生します。Zookeeperスレッドを実行できない場合、サーバーはセッションをタイムアウトし、作成した一時的なznodeを削除します。ノンストップモードを使用すると、これを防ぐことができますが、Zookeeper以外のスレッドの状態を調べることができるという便利さが失われます。
GDBに、ブレークポイントに達したときに1つ(または複数)のスレッドがアプリケーションで実行を継続するが、他のスレッドは実行を停止するように指定する方法はありますか?そうすれば、気になるスレッドの状態を調べて、バックグラウンドで実行したいスレッドの状態を無視することができます。
編集:これは基本的に、gdb内のすべてのスレッドを停止しないことの複製です。ノンストップモードでバックグラウンドコマンドを使用するための解決策は、スレッドを停止し、必要なときに非同期で再起動できるため、基本的に問題を解決します。したがって、これを閉じる必要があります。
hbase - HBase Zookeeper 接続を閉じる
Apache Tomcat で実行され、HBase テーブル スキャンを行う操作が 1 つしかない単純な Web サービスを作成しようとしています。設定を取得する方法は次のとおりです。
問題は、接続Zookeeper
が開いたままになり、特定の数の接続に達するとZookeeper
破棄し始めることです。
Zookeeper
スキャン後に接続を閉じるにはどうすればよいですか?
ありがとう
hadoop - 飼育係 getZookeeperClusterKey での NullPointerException
HBase に接続すると、次のメッセージが表示されます。
構成に問題があるようです。構成にxmlファイルを使用していませんが、コードでこれを行います。記録のために、これは私のコードの構成部分です:
Spring DM を使用して OSGi アプリケーションからこれを実行しています。
編集:
956行目あたりのソースコードは次のとおりです。
明らかに、クォーラムの値は読み取られません。ただし、通常の非 OSGi アプリケーションで同じコードを使用しても問題はありませんでした。
編集:構成を提供する別の方法を使用すると、効果があったようです。次のエラーが表示されます。
現在ソースを調べています。
synchronization - Apache ZooKeeper: 書き込みはどのように機能しますか
Apache ZooKeeper は、小さなオブジェクト用の高可用性データストアの一種です。ZooKeeper クラスターは、データセット全体をメモリに保持するいくつかのノードで構成されます。データセットは「常に一貫性がある」と呼ばれるため、すべてのノードは常に同じデータを持ちます。
ドキュメントとブログ投稿によると、クラスター内のすべてのノードは読み取りに応答し、書き込みを受け入れることができます。
- 読み取りは常にノードによってローカルで応答されるため、クラスターとの通信は関係ありません。
- 書き込みは、指定された「リーダー」ノードに転送されます。このノードは、書き込み要求をすべてのノードに転送し、それらの応答を待ちます。ノードの少なくとも半分が応答すると、書き込みは成功したと見なされます。
質問: リーダーがノードの半分が応答するのを待つだけで十分なのはなぜですか? 誰かが更新を受け取らなかったノードの 1 つに接続すると、古い結果が得られます (ローカル値からローカル読み取りのみ)。
java - ZooKeeper:セッションの有効期限が切れたときに正しく再接続する方法は?
ZooKeeper FAQには、状態が SESSION_EXPIRED になったときに ZooKeeper オブジェクトを再作成する必要があることが記載されています。
そのような再接続を適切に行うコードの例はありますか? Zookeeper ディストリビューションの Recipes フォルダーには、セッションが期限切れにならないことを前提とした 2 つのコード例が含まれています。サーバーが ZooKeeper クラスターから 5 分間切断された後、接続が再確立された後、キューとロックの両方が機能しなくなるため、これは単純です。
locking - ZooKeeperの代替手段?(クラスター調整サービス)
ZooKeeperは、データセンター向けの可用性の高い調整サービスです。これは、Hadoopプロジェクトに端を発しています。その上に、ロック、フェイルオーバー、リーダー選出、グループメンバーシップ、およびその他の調整の問題を実装できます。ZooKeeperに代わるものはありますか?(もちろん自由ソフトウェア)
sharding - Apache Zookeeper はシャーディングでどのように使用されますか?
cfg 情報を一元化することを考えており、zookeeper が適切な選択のようです。また、シャーディングにも関心があり、スキームがあります。poweredBy[1] では、Rackspace と Yahoo がシャーディングに Zookeeper を使用していることを確認しました。ポインタと詳細をいただければ幸いです。
[1] https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
java - ZooKeeper では、存在しない znode で async getData() を使用できますか?
exists() メソッドを呼び出しても、Code.NoNode もチェックする必要があります。
したがって、 getData() メソッドを直接使用できますか?
ノードが存在しない場合、sync getData() が例外をスローすることに気付きました。したがって、存在しない znode で async getData を呼び出した場合、パフォーマンスやその他の面でペナルティが発生しますか?
ありがとうございました!