2017-09-12 2 views
0

Hazelcastクラスタを拡張したを導入したアプリケーションがのデータセンター2つを同時にデプロイしました。通常、2つのデータセンターは完全に機能していますが、そのうちの1つがSDNアップグレードのためにネットワークから完全に外されます。Hazelcastを使用したデータセンター間のレプリケーションを実現

私が達成しようとしているのは、DCの各メインパーティションに少なくとものバックアップが2つあるように、クラスタを構成することです。 - もう1つはクラスタ内にあり、もう1つは現在のクラスタにあります。

ドキュメントをチェックすると、パーティショングループhttp://docs.hazelcast.org/docs/2.3/manual/html/ch12s03.html)の方向に私が指摘されました。エンタープライズWANレプリケーションは、われわれが望むものとまったく同じように見えましたが、残念ながら、この機能はHazelcastの無料版では利用できません。

NetworkConfig network = config.getNetworkConfig(); 

    network.setPort(hzClusterConfigs.getPort()); 
    JoinConfig join = network.getJoin(); 
    join.getMulticastConfig().setEnabled(hzClusterConfigs.isMulticastEnabled()); 
    join.getTcpIpConfig() 
      .setMembers(hzClusterConfigs.getClusterMembers()) 
      .setEnabled(hzClusterConfigs.isTcpIpEnabled()); 
    config.setNetworkConfig(network); 

    PartitionGroupConfig partitionGroupConfig = config.getPartitionGroupConfig() 
      .setEnabled(true).setGroupType(PartitionGroupConfig.MemberGroupType.CUSTOM) 
      .addMemberGroupConfig(new MemberGroupConfig().addInterface(hzClusterConfigs.getClusterDc1Interface())) 
      .addMemberGroupConfig(new MemberGroupConfig().addInterface(hzClusterConfigs.getClusterDc2Interface())); 
    config.setPartitionGroupConfig(partitionGroupConfig); 

コンフィグは、最初に使用した:次のよう

私の構成である

clusterMembers=host1,host2,host3,host4 
clusterDc1Interface=10.10.1.* 
clusterDc2Interface=10.10.1.* 

しかしながら、任意のイベントでコンフィグのセットとクラスタの構成要素を変更するときにトリガ、クラスタのランダムノード"パーティション所有権を割り当てるためにメンバーグループが使用できません"秒おきに(ここでは:https://github.com/hazelcast/hazelcast/issues/5666)。さらに、JMXのPartitionServiceによって公開されている状態を確認すると、明らかに成功したクラスタ状態にもかかわらず、実際にパーティションが生成されていないことが明らかになりました。

このように、私はホスト名を対応するIPに置き換えて、構成が機能しました。パーティションが正常に作成され、ノードが動作していませんでした。

ここでの問題は、ボックスがA/B展開プロセスの一部として作成され、244個のIPの範囲からIPが自動的に取得されることです。 244個のIPをすべて追加することは、たとえそれが手作業ではなく、シェフからプログラム的に実行されたとしても、それはネットワークノイズのせいだからだ。ハローキャストポートでリッスンしているtelnetベースのクライアントを使用しているすべてのデプロイメントをチェックすることは、IPがデプロイメントとは異なるため、少し問題があるように見えます。そして、ノードの一部クラスター内のメンバーは特定のメンバーリストを持ち、別のメンバーは異なるメンバーリストを同時に持ちます。

DNS解決に依存し、プロビジョニング時に私たちの頭をIP解決策に縛る必要がないので、ホスト名を使用することが最適な解決策となります。

誰かがグループ設定の問題の回避策を知っていますか?あるいは、おそらく、同じ行動を達成するための代替手段でしょうか?

答えて

0

これは現時点では不可能です。バックアップグループは、自分自身のバックアップを作成する方法を設計することはできません。この問題を回避するには、4つのグループを設計できる可能性がありますが、少なくとも3つのバックアップを使用しない場合は、各データセンターに1つのバックアップがあるという保証はありません。

一般的に、DCネットワークがLANネットワークに類似した形で相互接続され、冗長性が設定されている特定の状況を除いて、Hazelcastクラスタを複数のデータセンターに分散することはお勧めしません。

関連する問題