ユースケース: 1 つのプールに 100 台のサーバー。各サーバーで ZooKeeper サービスを開始したいのですが、サーバー アプリケーション (ZooKeeper クライアント) は ZooKeeper クラスター (読み取り/書き込み) を使用します。その場合、単一障害点はありません。
このユースケースでこのソリューションは可能ですか? パフォーマンスはどうですか?
プールに 1000 台のサーバーがある場合はどうなりますか?
ユースケース: 1 つのプールに 100 台のサーバー。各サーバーで ZooKeeper サービスを開始したいのですが、サーバー アプリケーション (ZooKeeper クライアント) は ZooKeeper クラスター (読み取り/書き込み) を使用します。その場合、単一障害点はありません。
このユースケースでこのソリューションは可能ですか? パフォーマンスはどうですか?
プールに 1000 台のサーバーがある場合はどうなりますか?
単一障害点を回避するだけであれば、必要なサーバーは 3 つだけです。3 ノードのアンサンブルでは、残りの 2 つのノードがクォーラムを形成しているため、単一の障害に耐えることができます。サーバーが多いほど、書き込みパフォーマンスが低下します。そして、ZK がそれを処理できる場合でも、100台のサーバーはこれの極端です。
ただし、それだけ多くのクライアントを持つことはまったく問題ありません。Zookeeper には、1000 を超えるクライアントを含むアクティブな展開があります。読み取り負荷を処理するためにより多くのサーバーが必要であることがわかった場合は、いつでもObserversを追加できます。リストサーブに参加することを強くお勧めします。これは、質問への回答をすばやく得る優れた方法であり、SO で他の人が提供するよりもはるかに詳細である可能性があります。
Zookeeper は適切なツールではないのでしょうか。
Hazelcastはあなたが望むことをしてくれると思います。何百ものピアを作成できます。マスターが失われると、すべてのピアから新しいマスターが選択されます。
ヘーゼル キャストをすべて使用する必要はありません。マップのみ、ワーカープールのみ、同期プリミティブのみ、メッセージングのみなどを使用できます。