WildFly 10 Jgroups总是绑定到localhost接口

时间:2016-09-30 10:25:54

标签: infinispan wildfly-10 jgroups

您好我正在尝试开发一个使用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>

1 个答案:

答案 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>