【发布时间】:2014-11-10 15:17:10
【问题描述】:
我在跨不同服务器集群 Infinispan(通过 JGroups)时遇到问题。当我尝试这种集群时:
- 在 Infinispan 7 独立服务器 1 的子系统配置中配置的缓存容器(基于 Wildfly)
- 在 Infinispan 7 独立服务器 2 的子系统配置中配置的缓存容器(基于 Wildfly)
...每个节点都很好地加入了集群(我可以通过我假设 JGroups 产生的输出看到)。
但是,当我尝试这种集群时:
- 在 infinispan.xml 中配置的缓存容器与 JBoss AS 7 服务器 1 上的 Infinispan 7 dep jar 一起部署
- 在 Infinispan 7 独立服务器 2 的子系统配置中配置的缓存容器(基于 Wildfly)
...与应用程序一起部署到 JBoss AS 7 的节点没有加入集群。
简而言之,似乎使用应用程序部署的节点(即战争中的嵌入式 Infinispan jar 和配置)无法加入具有独立部署节点的集群(通过子系统配置在 xml 中配置的缓存容器)。
需要注意的是,我使用的是 Infinispan 7(我承认它现在处于测试阶段,但我需要使用它,因为不幸的是,Infinispan 6 中的 JCache 依赖项指向 1.0.0 PFD 版本的 cache-api 依赖项( JSR 107)。
我还要注意,我将 Infinispan 与我的应用程序一起部署的原因是,我部署到的服务器不一定有 Infinispan 可用(即 JBoss AS 7 或在某些情况下很可能是 WebSphere)。有人可能会告诉我,在应用服务器上配置 Infinispan 而不用我的应用程序部署它更合适,但是在尝试了 1 个多小时用 Infinispan 7 子系统配置 JBoss AS 7 之后,我放弃了。我上面的部署方案似乎是合法的......除非有其他建议?
我正在与我的应用程序一起部署的 JGroups 配置:
<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.4.xsd">
<TCP bind_port="7802" />
<TCPPING timeout="3000" initial_hosts="${jgroups.tcpping.initial_hosts:MY_INTERNAL_DOMAIN[7800],localhost[7801],localhost[7802]}" port_range="1"
num_initial_members="3" />
<VERIFY_SUSPECT timeout="1500" />
<pbcast.NAKACK use_mcast_xmit="false" retransmit_timeout="300,600,1200,2400,4800" discard_delivered_msgs="true" />
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="400000" />
<pbcast.GMS print_local_addr="true" join_timeout="3000" view_bundling="true" />
</config>
我在 Infinispan 7 独立服务器中配置的 JGroups 堆栈:
<stack name="tcp">
<transport type="TCP">
<property name="bind_port">7800</property>
</transport>
<protocol type="TCPPING">
<property name="timeout">3000</property>
<property name="initial_hosts">${jgroups.tcpping.initial_hosts:MY_INTERNAL_DOMAIN.atldev.com[7800],localhost[7801]}</property>
<property name="port_range">1</property>
<property name="num_initial_members">3</property>
</protocol>
<protocol type="VERIFY_SUSPECT">
<property name="timeout">1500</property>
</protocol>
<protocol type="pbcast.NAKACK">
<property name="use_mcast_xmit">false</property>
<property name="retransmit_timeout">300,600,1200,2400,4800</property>
<property name="discard_delivered_msgs">true</property>
</protocol>
<protocol type="pbcast.STABLE">
<property name="stability_delay">1000</property>
<property name="desired_avg_gossip">50000</property>
<property name="max_bytes">400000</property>
</protocol>
<protocol type="pbcast.GMS">
<property name="print_local_addr">true</property>
<property name="join_timeout">3000</property>
<property name="view_bundling">true</property>
</protocol>
</stack>
在 Infinispan 7 独立服务器中配置的缓存容器:
<subsystem xmlns="urn:infinispan:server:core:7.0" default-cache-container="ervm-caches">
<cache-container name="ervm-caches" default-cache="ervm-default-cache">
<transport stack="tcp" cluster="ervm-cluster"/>
<distributed-cache name="default" mode="SYNC" segments="20" owners="2" remote-timeout="30000" start="EAGER">
<locking acquire-timeout="30000" concurrency-level="1000" striping="false"/>
<transaction mode="NONE"/>
</distributed-cache>
<distributed-cache name="memcachedCache" mode="SYNC" segments="20" owners="2" remote-timeout="30000" start="EAGER">
<locking acquire-timeout="30000" concurrency-level="1000" striping="false"/>
<transaction mode="NONE"/>
</distributed-cache>
<replicated-cache name="ervm-default-cache" mode="SYNC" start="EAGER"/>
</cache-container>
</subsystem>
缓存容器在我的应用程序(war)中配置并部署到 JBoss AS 7:
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:7.0 http://www.infinispan.org/schemas/infinispan-config-7.0.xsd"
xmlns="urn:infinispan:config:7.0">
<jgroups>
<stack-file name="tcp" path="ervm-jgroups-tcp.xml" />
<stack-file name="udp" path="ervm-jgroups-udp.xml" />
</jgroups>
<cache-container name="ervm-caches" default-cache="ervm-default-cache">
<transport stack="tcp" cluster="ervm-cluster" />
<replicated-cache name="ervm-default-cache" mode="SYNC" start="EAGER" />
</cache-container>
</infinispan>
【问题讨论】:
-
我只是尝试部署到不同的 Wildfly 服务器(在不同的 IP 上),子系统配置类似于前面提到的,也无法让它们一起加入集群!
-
我刚刚找到 stackoverflow.com/questions/24068586/… ,这听起来很像我正在尝试做的事情。我要试一试。
标签: jboss jboss7.x wildfly infinispan jgroups