2017-02-21 3 views
0

最近、JGroupを使用してクラスタを作成しようとしているため、同じクラスタに接続されている別のマシンが互いにメッセージを交換できます。2つのサブネットにわたるJGroupクラスタリング

localhost(2つのJavaアプリケーションの間)でシンプルチャットアプリケーションを試しましたが、問題なく動作します。つまり、相互にメッセージを送受信できます。送信者の私の次のステップは、送信者を移動させることである

(作成者:Javaモジュール(レシーバー) サーバー2(モジュール使用jgroupは、このサーバーに常駐)で構成されています。ここでは

は PC 1はシナリオですクラスタ)を別のサブネットに移動しますが、私のPC 1からプライベートIPアドレスをpingできるのと同じネットワーク内にあります。理想的には、サーバ1がクラスタを作成し(最初に参加する)、ローカルサーバ1によって作成されたクラスタに参加する必要があります。

これらの2つのサブネット間にファイアウォールがあります。

私はこれをデフォルトのJChannel設定を使用して試しましたが、動作しません。クラスタが作成されましたが、PC1はクラスタに接続できず、代わりに独自のクラスタを形成しました。クラスタ名は同じです。

私はさらに調査をしました。サーバーで作成したUDPユニキャストを、送信者と受信者としてサーバーで設定する必要がありますか?もしそうなら、私はプロトコルスタックをxmlまたはプログラムで構成しなければならないことを読んで、それらをJChannelのインスタンス化に渡しました。発見のためのTCPPING?

誰でも光を当てることはできますか?第二に、彼らの間にファイアウォールがあるので、私はTCPGOSSIPを設定する必要がありますか?

よろしく、

答えて

0

私は、Apache-ラクダとmod_clusterのとJGroupsのを使用して、私の環境には、同じ問題に直面しました。 2つのデータセンター(サブネット)の統合の要件を達成するために、マルチキャストでデフォルトのUDPの代わりにJGroupsとmod_clusterをTCPで使用しました。 JGroupsでは、tcppingを含むプロトコルスタック全体の構成を含むファイルを設定する必要があります。 JGroupsの.jarの中には、tcp.xmlやtcp-nio.xmlなどのサンプルファイルがあります。私はバージョン3.6.13.Finalにアップグレードするまで、JGroups 3.4.1のtcpping設定に問題があっても機能しないという問題を抱えていました。

JChannelクラスを使用している場合は、構成を含むXMLファイルへのパスを含むStringを受け取るコンストラクタを使用してください。 TCPの設定で使用される重要なパラメータ

-Djgroups.bind_addr -Djgroups.tcpping.initial_hosts=NODE1[7800],NODE2[7800]

のを忘れないでください。あなたの場合、ファイアウォール内のJGroupsが使用するポートを設定する必要もあります。

希望に役立ちます。

関連する問題