1

所以,我只是在 apache 后面设置了两个 jboss 节点,启用了集群并设置了 ehcache 同步。现在两个节点都在运行,我在未收到请求的节点上收到以下异常:

...
JBoss_5_1_0_GA date=200905221634)] Started in 2m:16s:391ms
12:52:51,139 ERROR [NAKACK] sender 10.166.17.53:7600 not found in xmit_table
12:52:51,139 ERROR [NAKACK] range is null
12:52:51,145 INFO  [RPCManagerImpl] Received new cluster view: MergeView::[10.16                 6.17.52:7600|1] [10.166.17.52:7600, 10.166.17.53:7600], subgroups=[[10.166.17.52                       :7600|0] [10.166.17.52:7600], [10.166.17.53:7600|0] [10.166.17.53:7600]]
12:53:10,006 WARN  [NAKACK] 10.166.17.52:7600] discarded message from non-member                        10.166.17.53:7600, my view is [10.166.17.52:7600|0] [10.166.17.52:7600]
12:53:10,108 WARN  [NAKACK] 10.166.17.52:7600] discarded message from non-member                        10.166.17.53:7600, my view is [10.166.17.52:7600|0] [10.166.17.52:7600]
12:53:10,110 ERROR [NAKACK] sender 10.166.17.53:7600 not found in xmit_table
12:53:10,110 ERROR [NAKACK] range is null
12:53:10,113 INFO  [graCluster] New cluster view for partition graCluster (id: 1                       , delta: 1) : [127.0.0.1:1099, 127.0.0.1:1099]
12:53:10,117 INFO  [graCluster] Merging partitions...
12:53:10,118 INFO  [graCluster] Dead members: 0
12:53:10,120 INFO  [graCluster] Originating groups: [[10.166.17.52:7600|0] [10.1                       66.17.52:7600], [10.166.17.53:7600|0] [10.166.17.53:7600]]

以下是我的 ehcache.xml 的样子:

<cacheManagerPeerProviderFactory
       class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
       properties="connect=TCP(start_port=7800):TCPPING(initial_hosts=10.46.49.52[7800],10.46.49.53[7800];port_range=10;timeout=3000;
                    num_initial_members=2;up_thread=true;down_thread=true):
                    VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false):
                    pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):
                    pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;
                    print_local_addr=false;down_thread=true;up_thread=true)"
                    propertySeparator="::"/>

最后这是我运行两个节点的方式:

./run.sh -c all -g myCluster -Djboss.default.jgroups.stack=tcp -Djgroups.tcpping.initial_hosts=10.166.17.52[7600],10.166.17.53[7600] -Djboss.messaging.ServicePeerId=1 - Djgroups.bind_addr=10.166.17.52 -Djboss.node.name=node1 -b 0.0.0.0

./run.sh -c all -g myCluster-Djboss.default.jgroups.stack=tcp -Djgroups.tcpping.initial_hosts=10.166.17.52[7600],10.166.17.53[7600] -Djboss.messaging.ServicePeerId=2 - Djgroups.bind_addr=10.166.17.53 -Djboss.node.name=node2 -b 0.0.0.0

服务器正在尝试相互交谈。我不确定它们是否甚至在同一个集群中。任何帮助都感激不尽。

4

2 回答 2

1

我打开了 ehcache 日志,发现虽然节点尝试相互通信,但它们失败并且无法相互建立连接。这已通过修复配置错误的主机文件得到解决。一旦节点开始相互通信,ehcache 复制就起作用了。显然关于 xmit_table 的错误是无关紧要的。

于 2014-02-26T14:06:49.213 回答
0

最近在对基于 TCP 的 POC 进行跨 Windows 机器的 EHCache 发现和复制时遇到了这个问题。当使用 IP 地址作为绑定地址 -Djgroups.bind_addr= 时,在本地运行 2 个服务实例工作正常。但是在跨机器连接时失败。我们无权更改主机文件,因此更改了绑定地址以使用机器名称而不是 IP。重新启动服务和跨机器通信工作得非常好,缓存上的所有 CRUD 操作都按预期复制。

于 2016-12-19T07:59:47.623 回答