2

クラスタリング、分散コンピューティング、およびマルチキャスト モードでのメッセージングに Hazelcast に依存する小さなシステムを実行しています (ダウンロードで利用可能な標準構成)。「コア」Hazelcast インスタンスとして実行される多数のサーバー モジュールと、Hazelcast「ネイティブ クライアント」として実装される Java Swing アプリケーションがあります。これはすべてうまく機能し、システムを本番環境で試運転したいので、2 つの個別のクラスター (dev + prod) を実行する必要があり、そこで問題が発生します。

ドキュメントによると、必要なのは 2 つのクラスターに別々のグループ名とパスワードを使用することだけであり、2 つのクラスターは自動的に整理されるはずだと思います!? これはサーバー モジュールでは機能しているように見えますが、「クライアント」インスタンスを prod 環境に接続しようとすると、prod のサーバー モジュールの 1 つのログから、クライアントが正常に接続しているように見えることがわかります。

INFO: [prod] received auth from Connection [/192.168.0.2:55863 -> null] live=true,
client=true, type=JAVA_CLIENT, this group name:prod, auth group name:prod, 
successfully authenticated

ただし、クライアントが prod のメンバーとして表示されることはありません。代わりに、prod に対して認証が行われたにもかかわらず、クライアントが開発環境のメンバーになっていることがわかりました。

2 つのクラスターが無意識に混ざり合うことは、明らかに私にとって大きな問題であり、ショーストッパーでもあります。私が間違っていることがあるかどうか、または問題を解決するためにできる構成変更があるかどうか、誰かが知っていますか?

4

1 に答える 1

5

クライアントがクラスターに接続しても、クラスターのメンバーになることはありません。

したがって、クライアントが製品に接続したと思われますが、コードのどこかに Hazelcat.getMap() のようなものがあり、その結果、その JVM でメンバーが開始され、このメンバーが使用するデフォルト構成はこの新しいメンバーが開発クラスターに参加します。

したがって、実際には、prod に接続された 1 つのクライアントと、dev クラスターに接続された別のメンバーがあります。

クライアントを介して何かを入れてみて、それらのエントリがどのクラスタに表示されるかを確認してください。

私は理にかなっていますか?

于 2011-05-20T13:46:00.450 に答える