您好我正在尝试开发一个使用Infinispan进行缓存的集群应用程序。首先,我尝试通过使用localhost作为绑定接口(具有端口偏移)启动两个wildfly实例来以复制模式运行。这很好。但是一旦我使用接口IP启动服务器,集群就不会形成。我仍然可以使用接口IP访问其他服务。 我尝试使用接口IP地址远程登录Jgroups端口,但失败了。但telnet到localhost适用于Jgorups端口。
(然后在tcpping中输入localhsot [port] IP到初始主机配置元素。然后群集形成起作用。)
所以我的问题是,为什么即使在使用接口IP启动wildfly之后它也会绑定到localhost。
这是我的配置。 (我不能使用UDP,因此需要使用tcpping来形成簇)
使用
启动wilfly服务器standalone.bat -Djboss.server.base.dir=../standalone_isuru -c standalone-full-ha.xml -b 192.168.17.33 -Djboss.node.name=isuru -Djboss.socket.binding.port-offset=1
Jgourps配置
<subsystem xmlns="urn:jboss:domain:jgroups:4.0">
<channels default="ee">
<channel name="ee" stack="tcpping"/>
</channels>
<stacks>
<stack name="udp">
.
.
</stack>
<stack name="tcp">
.
.
</stack>
<stack name="tcpping">
<transport type="TCP" socket-binding="jgroups-tcp"/>
<protocol type="TCPPING">
<property name="initial_hosts">
192.168.17.33[7601], 192.168.14.39[7700], 192.168.17.33[7800]
</property>
<property name="num_initial_members">
2
</property>
<property name="port_range">
5
</property>
<property name="timeout">
1000
</property>
</protocol>
<protocol type="MERGE3"/>
<protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
<protocol type="FD"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="pbcast.NAKACK2"/>
<protocol type="UNICAST3"/>
<protocol type="pbcast.STABLE"/>
<protocol type="pbcast.GMS"/>
<protocol type="MFC"/>
<protocol type="FRAG2"/>
</stack>
</stacks>
Infinispan缓存配置
<cache-container name="replicated_cache" default-cache="default" module="org.wildfly.clustering.server" jndi-name="infinispan/replicated_cache">
<transport lock-timeout="60000"/>
<replicated-cache name="customer" jndi-name="infinispan/replicated_cache/customer" mode="SYNC">
<transaction locking="OPTIMISTIC" mode="FULL_XA"/>
<eviction strategy="NONE"/>
</replicated-cache>
</cache-container>
答案 0 :(得分:4)
我在Jboss developer发布了相同的问题,因为我在这里没有得到任何答案。 这就是我从那里得到的答案。
默认情况下,Jgroups绑定到私有接口。启动服务器时,也可以提供此IP。
standalone.bat -b 192.168.17.39 -bprivate=192.168.17.39
您可以参考interfaces
部分了解接口配置。
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
<interface name="private">
<inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
</interface>
</interfaces>
套接字绑定,将jgroup绑定到私有接口
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
.
<socket-binding name="jgroups-tcp" interface="private" port="7600"/>
.
</socket-binding-group>
Jgroups子系统
<stack name="tcpping">
<transport type="TCP" socket-binding="jgroups-tcp"/>
.
</stack>