2017-11-28 2 views
0

失敗にverticles間でクラスタをvert.x確立します。失敗は、私はvert.x eventbusプライベートクラウド環境でのクラスタ化を設定するには、トラブルを抱えているクラウド環境</p> <p>上verticles間でクラスタをvert.x確立するために、クラウド環境

実験室でのテストでは、Hazelcastクラスタマネージャを使用してクラスタを確立するために2つの頂点を作成しようとしています。それぞれは独自のコンテナで実行されます。

問題は誤って構成されていることがありますが、それを見つけることができません。 このクラウドでは、マルチキャストコールを行うことはできません。次に、TCP IPディスカバリ戦略を使用しています。

最初の計画は、 "labatf-vtx" verticleで実行されるeventbusによるbussines処理を伝播する "labatf-api" verticle(REST呼び出し受信者)を作成することです。以下は

、垂直方向の "labatf-API" のクラスタフラグメントを設定するためのコード:

Config hazelcastConfig = new Config(); 
NetworkConfig networkConfig = new NetworkConfig(); 

networkConfig 
    .setPort(5701) 
    .getJoin() 
     .getMulticastConfig() 
      .setEnabled(false); 
networkConfig 
    .getJoin() 
     .getAwsConfig() 
      .setEnabled(false); 
networkConfig 
    .getJoin() 
     .getTcpIpConfig() 
      .setEnabled(true)   
      .addMember("labatf-vtx:5701"); 

hazelcastConfig.setNetworkConfig(networkConfig); 

ClusterManager mgr = new HazelcastClusterManager(hazelcastConfig); 
VertxOptions options = new VertxOptions() 
    .setClusterManager(mgr) 
    .setEventBusOptions(new EventBusOptions()       
      .setClusterPublicHost("labatf-api") 
      .setClusterPublicPort(5701)) 
    .setClustered(true); 

Vertx.clusteredVertx(options, res -> { 
    if (res.succeeded()) { 
     ... 
    } 
}); 

そして "labatf-API" 垂直方向のコード:

Config hazelcastConfig = new Config(); 
NetworkConfig networkConfig = new NetworkConfig(); 

networkConfig 
    .setPort(5701) 
    .getJoin() 
     .getMulticastConfig() 
      .setEnabled(false); 
networkConfig 
    .getJoin() 
     .getAwsConfig() 
      .setEnabled(false); 
networkConfig 
    .getJoin() 
     .getTcpIpConfig() 
      .setEnabled(true)   
      .addMember("labatf-api:5701"); 

hazelcastConfig.setNetworkConfig(networkConfig); 

ClusterManager mgr = new HazelcastClusterManager(hazelcastConfig); 
VertxOptions options = new VertxOptions() 
    .setClusterManager(mgr) 
    .setEventBusOptions(new EventBusOptions()       
      .setClusterPublicHost("labatf-vtx") 
      .setClusterPublicPort(5701)) 
    .setClustered(true); 

Vertx.clusteredVertx(options, res -> { 
    if (res.succeeded()) { 
     ... 
    } 
}); 

注意「というlabatf-APIを"と" labatf-vtx "はクラウド環境のモジュール名ですが、IPをサービスするドメイン名でもあり、各モジュールのコンテナレプリカ間のコールのバランスが取れます(存在する場合)。 「labatf-API」垂直方向ので

INFO: [192.168.84.205]:5701 [dev] [3.9] Accepting socket connection from /192.168.80.253:52191 
INFO: [192.168.84.205]:5701 [dev] [3.9] Established socket connection between /192.168.84.205:5701 and /192.168.80.253:52191 
WARNING:[192.168.84.205]:5701 [dev] [3.9] Wrong bind request from [192.168.80.253]:5701! This node is not the requested endpoint: [labatf-api]:5701 
INFO: [192.168.84.205]:5701 [dev] [3.9] Connection[id=2, /192.168.84.205:5701->/192.168.80.253:52191, endpoint=null, alive=false, type=MEMBER] closed. Reason: Wrong bind request from [192.168.80.253]:5701! This node is not the requested endpoint: [labatf-api]:5701 
INFO: [192.168.84.205]:5701 [dev] [3.9] Connection[id=5, /192.168.84.205:45323->labatf-vtx/10.36.232.241:5701, endpoint=[labatf-vtx]:5701, alive=false, type=MEMBER] closed. Reason: Connection closed by the other side 
開始verticlesコンテナ後

、他の各モジュールの検出が、数秒後に接続を以下ログとして、宛先ピアによって中断されています"labatf-VTX" 垂直方向ので

INFO: [192.168.80.253]:5701 [dev] [3.9] Accepting socket connection from /192.168.84.205:60711 
INFO: [192.168.80.253]:5701 [dev] [3.9] Established socket connection between /192.168.80.253:5701 and /192.168.84.205:60711 
WARNING: [192.168.80.253]:5701 [dev] [3.9] Wrong bind request from [192.168.84.205]:5701! This node is not the requested endpoint: [labatf-vtx]:5701 
INFO: [192.168.80.253]:5701 [dev] [3.9] Connection[id=3, /192.168.80.253:5701->/192.168.84.205:60711, endpoint=null, alive=false, type=MEMBER] closed. Reason: Wrong bind request from [192.168.84.205]:5701! This node is not the requested endpoint: [labatf-vtx]:5701 
INFO: [192.168.80.253]:5701 [dev] [3.9] Connection[id=4, /192.168.80.253:55987->labatf-api/10.36.212.47:5701, endpoint=[labatf-api]:5701, alive=false, type=MEMBER] closed. Reason: Connection closed by the other side 

すべてのヘルプはウェルカムになります!

答えて

0

ロードバランサ経由でHazelcastノードに接続することはできません。ヘーゼルキャストノードは互いに直接話し合わなければならない。私たちはHTTP(S)ではなくカスタムのTCP/IPベースのプロトコルを使用しています。

+0

お返事ありがとうございます!私は他のクラスターマネージャーを探検して、このシナリオをvert.xで解決しようとします。 –

関連する問題