2017-06-20 10 views
0

私はデータベースにJPAをバックアップした私のメインデータストアとしてHazelcastを使用しています。別のクラスなどで作業しているので、私たちの開発環境で他のインスタンスを見つけるためにマルチキャストを使用しないようにしようとしていますが、Hazelcastはまだ接続しています。私はHazelcastConfigurationクラスを呼び出していることを知っていますが、jarファイルのhazelcast-defaults.xmlも使用していて、クラスタを作成しています。私のNetworkConfigを無視したSpringブートのHazelcast

@Bean(name = "hazelcastInstance") 
public HazelcastInstance getHazelcastInstance(Config config) { 
    return new HazelcastInstanceFactory(config).getHazelcastInstance(); 
} 

@Bean(name = "hazelCastConfig") 
public Config config() 
{ 
    MapConfig userMapConfig = buildUserMapConfig(); 
    ... 
    Config config = new Config(); 
    config.setNetworkConfig(buildNetworkConfig()); 
    return config; 
} 

private NetworkConfig buildNetworkConfig() { 
    NetworkConfig networkConfig = new NetworkConfig(); 
    JoinConfig join = new JoinConfig(); 
    MulticastConfig multicastConfig = new MulticastConfig(); 
    multicastConfig.setEnabled(false); 
    join.setMulticastConfig(multicastConfig); 
    TcpIpConfig tcpIpConfig = new TcpIpConfig(); 
    tcpIpConfig.setEnabled(false); 
    join.setTcpIpConfig(tcpIpConfig); 
    networkConfig.setJoin(join); 
    return networkConfig; 
} 

今、私はこれらが呼び出されているとエンティティが私のデータベースにバックアップされますので、それは私の構成を使用する必要があることがわかりますが、私はまた、起動時にこれを取得:

2017-06-20 14:41:24.311 INFO 3741 --- [   main] c.h.i.cluster.impl.MulticastJoiner  : [10.10.0.125]:5702 [dev] [3.8.1] Trying to join to discovered node: [10.10.0.127]:5702 
2017-06-20 14:41:34.870 INFO 3741 --- [ached.thread-14] c.hazelcast.nio.tcp.InitConnectionTask : [10.10.0.125]:5702 [dev] [3.8.1] Connecting to /10.10.0.127:5702, timeout: 0, bind-any: true 
2017-06-20 14:41:34.972 INFO 3741 --- [ached.thread-14] c.h.nio.tcp.TcpIpConnectionManager  : [10.10.0.125]:5702 [dev] [3.8.1] Established socket connection between /10.10.0.125:54917 and /10.10.0.127:5702 
2017-06-20 14:41:41.181 INFO 3741 --- [thread-Acceptor] c.h.nio.tcp.SocketAcceptorThread   : [10.10.0.125]:5702 [dev] [3.8.1] Accepting socket connection from /10.10.0.146:60449 
2017-06-20 14:41:41.183 INFO 3741 --- [ached.thread-21] c.h.nio.tcp.TcpIpConnectionManager  : [10.10.0.125]:5702 [dev] [3.8.1] Established socket connection between /10.10.0.125:5702 and /10.10.0.146:60449 
2017-06-20 14:41:41.185 INFO 3741 --- [ration.thread-0] com.hazelcast.system      : [10.10.0.125]:5702 [dev] [3.8.1] Cluster version set to 3.8 
2017-06-20 14:41:41.187 INFO 3741 --- [ration.thread-0] c.h.internal.cluster.ClusterService  : [10.10.0.125]:5702 [dev] [3.8.1] 

Members [3] { 
    Member [10.10.0.127]:5702 - e02dd47f-7bac-42d6-abf9-eeb62bdb1884 
    Member [10.10.0.146]:5702 - 9239d33e-3b60-4bf5-ad81-da14524197ca 
    Member [10.10.0.125]:5702 - 847d0008-6540-438d-bea6-7d8b19b8141a this 
} 

誰もが持ってアイデア?

答えて

0

問題はApache CamelとそのHazelcastComponentで発生していました。 Hazelcastインスタンスを自動的に取得するわけではありません。私はそれが正しいHazelcastInstance使用を開始し、このようなHazelcastComponent構成されている場合:これはラクダ(2.20.0)の次のリリースではもう必要ありません

@Bean(name = "hazelcast") 
HazelcastComponent hazelcastComponent() { 
    HazelcastComponent hazelcastComponent = new HazelcastComponent(); 
    hazelcastComponent.setHazelcastInstance(hazelcastInstance); 
    return hazelcastComponent; 
} 
+0

を、https://issues.apache.org/を参照してくださいjira/browse/CAMEL-11434 –

0

TCP IPクラスタを簡単に設定するには、hazelcast.xml設定ファイルを使用します。

<hazelcast> 
    ... 
    <network> 
     <port auto-increment="true">5701</port> // check if this is valid for the usecase 
     <join> 
      <multicast enabled="false"> 
      </multicast> 
      <tcp-ip enabled="true"> 
       <hostname>machine1</hostname> 
       <hostname>machine2</hostname> 
       <hostname>machine3:5799</hostname> 
       <interface>192.168.1.0-7</interface> // set values as per your env 
       <interface>192.168.1.21</interface> 
      </tcp-ip> 
     </join> 
     ... 
    </network> 
    ... 
</hazelcast> 

以下の設定で示すように、マルチキャストのイネーブル属性はfalseに設定されていますが、tcp-ipはtrueに設定する必要があります。非マルチキャスト・オプションの場合は、クラスタ・メンバーのホスト名および/またはIPアドレスのすべてまたはサブセットをリストする必要があります。すべてのクラスタメンバーはそこにリストされる必要はありませんが、新しいメンバーが参加するときに少なくとも1つはクラスタ内でアクティブでなければならないことに注意してください。 tcp-ipタグは、「conn-timeout-seconds」という属性を受け入れます。デフォルト値は5です。多くのIPがリストされ、メンバーがクラスターを正しく構築できない場合は、この値を大きくすることをお勧めします。

ロード設定ファイルはあなたのためにsrc/main/resourcesフォルダや春ブーツにはオートのconfigure hazelcastをhazelcast.xmlファイルを追加します。 spring.hazelcast.config設定プロパティを使用して、プロパティまたはYAMLファイルでhazelcast.xmlファイルの場所を設定することもできます。

# application.yml 
spring: 
    hazelcast: 
    config: classpath:[path To]/hazelcast.xml 


# application.properties 
spring.hazelcast.config=classpath:[path To]/hazelcast.xml 

関連する問題