WildFly 10 Jgroups 始终绑定到本地主机接口
WildFly 10 Jgroups allways binding to localhost interface
您好,我正在尝试开发一个使用 Infinispan 进行缓存的集群应用程序。首先,我尝试通过使用本地主机作为绑定接口(具有端口偏移)启动两个 wildfly 实例,以复制模式 运行。这很好用。但是一旦我使用接口 IP 启动服务器,集群就不会形成。我仍然可以使用接口 IP 访问其他服务。
我尝试使用接口 IP 地址远程登录 Jgroups 端口,但失败了。但是远程登录到本地主机适用于 Jgorups 端口。
(然后在 tcpping 中输入 localhsot[port] IP 到初始主机配置元素。然后集群形成成功。)
所以我的问题是为什么即使在使用接口 IP 启动 wildfly 后它仍然绑定到本地主机。
这是我的配置。 (我不能使用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
群组配置
<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>
我在 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>
套接字绑定,将 jgroups 绑定到私有接口
<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>
您好,我正在尝试开发一个使用 Infinispan 进行缓存的集群应用程序。首先,我尝试通过使用本地主机作为绑定接口(具有端口偏移)启动两个 wildfly 实例,以复制模式 运行。这很好用。但是一旦我使用接口 IP 启动服务器,集群就不会形成。我仍然可以使用接口 IP 访问其他服务。 我尝试使用接口 IP 地址远程登录 Jgroups 端口,但失败了。但是远程登录到本地主机适用于 Jgorups 端口。
(然后在 tcpping 中输入 localhsot[port] IP 到初始主机配置元素。然后集群形成成功。)
所以我的问题是为什么即使在使用接口 IP 启动 wildfly 后它仍然绑定到本地主机。
这是我的配置。 (我不能使用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
群组配置
<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>
我在 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>
套接字绑定,将 jgroups 绑定到私有接口
<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>