2017-09-20 24 views
1

以下は、使用しているehcacheの設定です。私たちはキャッシュ複製のためにJgroupsを使用します。2ノードクラスタのAWSクラウドでTCPが動作しないEhcache Jgroupsレプリケーション

ehcache.xml

<defaultCache 
     maxElementsInMemory="10000" 
     eternal="false" 
     timeToIdleSeconds="1200" 
     timeToLiveSeconds="86400" 
     overflowToDisk="true" 
     diskSpoolBufferSizeMB="30" 
     maxElementsOnDisk="10000000" 
     diskPersistent="false" 
     diskExpiryThreadIntervalSeconds="120" 
     memoryStoreEvictionPolicy="LRU"> 
    <cacheEventListenerFactory 
      class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory" 
      properties="replicateAsynchronously=true,replicatePuts=true,replicateUpdates=true,replicateUpdatesViaCopy=true,replicateRemovals=true" /> 
</defaultCache> 

jgroups_tcp_config.xml我々は、ノードがクラスタ化取得されていることがわかりますログからの最初

<?xml version="1.0" encoding="UTF-8"?> 
<config xmlns="urn:org:jgroups" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.0.xsd"> 
    <!--Configure node ip inside bind_addr--> 
    <TCP bind_addr="host1" bind_port="7831" max_bundle_size="9999999"/> 
    <!--Configure nodes inside 'initial_hosts' property--> 
    <TCPPING timeout="3000" initial_hosts="host1[7831],host2[7831]" port_range="1" num_initial_members="3"/> 
    <FRAG2 frag_size="9999999"/> 
    <MERGE3 max_interval="30000" min_interval="10000"/> 
    <FD timeout="3000" max_tries="10"/> 
    <VERIFY_SUSPECT timeout="1500"/> 
    <pbcast.NAKACK use_mcast_xmit="false" exponential_backoff="500" discard_delivered_msgs="false"/> 
    <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="400000"/> 
    <pbcast.GMS print_local_addr="true" join_timeout="5000" view_bundling="true"/> 
</config> 

。また、メッセージがノード間で複製されていることがわかります。しかししばらくすると、メッセージは複製されなくなり、誤動作を招くことがあります。私たちが使っているjgroups設定に問題はありますか?

また、NAKACK2を使用してみましたが、メッセージはノード間で複製されません。上記の設定でNAKACKをNAKACK2に置き換えました。どこが間違っているのか分かりません。

答えて

0

上記の問題はAWSクラウドに直面しています.EhcacheクラウドVPNではクラウド環境では動作しません。クラウドVPNは、代わりにjgroups_s3_config.xmlを使用して、どのノードの検出が行われないかによってTCPマルチキャストをサポートしません。 AWSクラウド内のjgroups_tcp_config.xmlのjgroups_s3_config.xmlコンフィグレーションで問題を解決しました。

<?xml version="1.0" encoding="UTF-8"?> 
<config xmlns="urn:org:jgroups" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.1.xsd"> 
    <TCP loopback="true" bind_port="7800"/> 
    <S3_PING location="s3 bucket name should be in the same region in which app servers are running" 
    access_key="s3 bucket access key from aws credential file" 
    secret_access_key="s3 bucket secret access key from aws credential file" timeout="10000" num_initial_members="2"/> 
    <FRAG2/> 
    <MERGE2 min_interval="10000" max_interval="30000"/> 
    <FD_ALL timeout="12000" interval="3000" timeout_check_interval="4000"/> 
    <VERIFY_SUSPECT timeout="1500"/> 
    <pbcast.NAKACK2 use_mcast_xmit="false" discard_delivered_msgs="false"/> 
    <UNICAST2 timeout="300,600,1200"/> 
    <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="40K"/> 
    <pbcast.GMS print_local_addr="true" join_timeout="5000" view_bundling="true"/> 
</config> 

また、JAVA_OPTSを設定する必要があります。

export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" 
+0

以下のリンクをクリックすると、この問題に対処できます。 –

+0

http://www.jgroups.org/manual/html/protlist.html –

+0

http://vertx.io/docs/vertx-infinispan/java/ –

関連する問題