我正在尝试为我的应用程序实现ehcache复制。以下是jar版本: 的Ehcache-jgroupsreplication:1.7 ehcache-core 2.5.2 jgroups 3.1.0
启动我的应用程序时,在服务器日志中获取以下行:
GMS:地址= ABC111-33601,群集= EH_CACHE,物理地址= 10.x.x.xx:1123
在应用程序日志中收到以下警告:
ABC111-33601:从ABC222-40262丢弃了消息1(发送者不在表[ABC111-33601]中),视图= [ABC111-33601 | 0] [ABC111-33601]
echache.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<diskStore path="java.io.tmpdir"/>
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="connect=TCP(bind_port=1123):
TCPPING(initial_hosts=ABC111[1123],ABC222[1123],ABC333[1123];port_range=10;timeout=3000;num_initial_members=4):
VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(use_mcast_xmit=false;use_mcast_xmit_req=false;retransmit_timeout=3000):
pbcast.GMS(join_timeout=5000):
FRAG2(frag_size=60K)"
propertySeparator="::" />
<defaultCache
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120">
</defaultCache>
<cache name="com.abc.tariff"
maxElementsInMemory="1000"
eternal="false"
overflowToDisk="false"
timeToIdleSeconds="1800"
timeToLiveSeconds="1800">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />
</cache>
<cache name="com.abc.customer"
maxElementsInMemory="1000"
eternal="false"
overflowToDisk="false"
timeToIdleSeconds="120"
timeToLiveSeconds="180">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />
</cache>
</ehcache>
ABC111,ABC222和ABC333不在weblogic群集中。
知道为什么警告即将发生,我的猜测是复制还没有因此而开始或有吗?
答案 0 :(得分:0)
您的群集尚未形成。
警告说您收到了来自ABC222
的消息,该消息声称位于同一群集中,但不在群组视图中。
你的配置看起来很奇怪,例如,UNICAST
缺失,你没有故障检测协议,没有合并协议等。这是默认的JGroups配置ehcache配备吗?那将是非常错误的!
您可以使用probe
(查看JGroups手册以获取详细信息)来确定群集是否正确形成。我的猜测是,向bind_addr
添加正确的TCP
可以解决此问题......
答案 1 :(得分:0)
在您提出建议后,我更改了以下设置:
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="connect=TCP(bind_port=1123;bind_addr=10.x.x.58):
TCPPING(initial_hosts=10.x.x.58[1123],10.x.x.59[1123];port_range=10;timeout=3000;num_initial_members=2;break_on_coord_rsp=true):
MERGE2(min_interval=10000;max_interval=30000):
FD_SOCK:
FD(timeout=3000;max_tries=3):
VERIFY_SUSPECT(timeout=1500):
BARRIER:
pbcast.NAKACK2(use_mcast_xmit=false;discard_delivered_msgs=true):
UNICAST:
pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=4M):
pbcast.GMS(print_local_addr=true;join_timeout=5000;view_bundling=true):
UFC(max_credits=2M;min_threshold=0.4):
MFC(max_credits=2M;min_threshold=0.4):
FRAG2(frag_size=60K):
pbcast.STATE_TRANSFER"
propertySeparator="::" />
还在weblogics参数中添加了以下内容:
-Djava.net.preferIPv4Stack=true -Djgroups.resolve_dns=true -Djgroups.bind_addr=10.x.x.58 -Djgroups.tcpping.initial_hosts=10.x.x.58[1123],10.x.x.59[1123]
尝试运行问题:
java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -classpath -cp E:/jgroup/jgroups-3.1.0.Final.jar org.jgroups.tests.Probe
-- send probe on /224.0.75.75:7500
1 (217 bytes):
local_addr=ABC111-65460 [XX-78af-fb20-ae58-XX]
cluster=EH_CACHE
physical_addr=ABC111.qaoneadr.local:1123
view=[ABC222-23806|1] [ABC222-23806, ABC111-65460]
version=3.1.0.Final
2 (247 bytes):
local_addr=ap-insight2t-47964 [bbc6c770-e344-ceaa-18a9-f690284ca154]
cluster=OSCacheBus_insight_II_Insight_SITE_cluster
view=[ap-insight3t-30967|697] [ap-insight3t-30967, ap-insight2t-47964]
physical_addr=10.XX.XX.32:7900
version=3.3.5.Final
3 (217 bytes):
local_addr=ABC222-23806 [XX-d700-a732-227a-XX]
cluster=EH_CACHE
physical_addr=ABC222.qaoneadr.local:1123
view=[ABC222-23806|1] [ABC222-23806, ABC111-65460]
version=3.1.0.Final
3 responses (3 matches, 0 non matches)
但仍然得到:
ABC111-65460:从ABC222-23806丢弃了消息1(发送者不在表[ABC111-65460]中),视图= [ABC111-65460 | 0] [ABC111-65460]