【问题标题】:Infinispan server ignores jgroups bind_addrInfinispan 服务器忽略 jgroups bind_addr
【发布时间】:2014-11-21 18:52:44
【问题描述】:

我正在尝试使用包含两个节点的简单 Infinispan 服务器集群。问题是 Infinispan 忽略了我在 clustered.xml 文件中的 bind_addr jgroups 设置。我可以使用-Djgroups.bind_addr=GLOBAL 指定此设置——它可以工作,但并不方便。我使用bin/clustered.sh 脚本启动集群,使用 TCP 协议栈和 MPING 进行节点自动发现。

配置文件standalone/configuration/clustered.xml中与jgroups相关的部分:

<subsystem xmlns="urn:jboss:domain:jgroups:1.2" default-stack="${jboss.default.jgroups.stack:tcp}">
    <stack name="udp">
        <transport type="UDP" socket-binding="jgroups-udp"/>
        <protocol type="PING"/>
        <protocol type="MERGE2"/>
        <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
        <protocol type="FD_ALL"/>
        <protocol type="pbcast.NAKACK"/>
        <protocol type="UNICAST2"/>
        <protocol type="pbcast.STABLE"/>
        <protocol type="pbcast.GMS"/>
        <protocol type="UFC"/>
        <protocol type="MFC"/>
        <protocol type="FRAG2"/>
        <protocol type="RSVP"/>
    </stack>
    <stack name="tcp">
        <transport type="TCP" socket-binding="jgroups-tcp"/>
        <protocol type="MPING" socket-binding="jgroups-mping">
            <property name="bind_addr">GLOBAL</property>
        </protocol> 
        <protocol type="MERGE2"/>
        <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
        <protocol type="FD"/>
        <protocol type="VERIFY_SUSPECT"/>
        <protocol type="pbcast.NAKACK">
            <property name="use_mcast_xmit">false</property>
        </protocol>
        <protocol type="UNICAST2"/>
        <protocol type="pbcast.STABLE"/>
        <protocol type="pbcast.GMS"/>
        <protocol type="UFC"/>
        <protocol type="MFC"/>
        <protocol type="FRAG2"/>
        <protocol type="RSVP"/>
    </stack>
</subsystem>

我还尝试了 -Djgroups.ignore.bind_addr=true 选项来防止 Infinispan 从系统属性而不是 XML 派生 bind_addr 设置,无论谁设置它 - 它没有帮助。

Infinispan 6.0 版。

更新: socket-binding-group 和 interfaces 元素:

    <interfaces>
        <interface name="management">
            <!-- <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> -->
            <any-address/>
        </interface>
        <interface name="public">
            <!-- <inet-address value="${jboss.bind.address:127.0.0.1}"/> -->
            <any-address/>
        </interface>
    </interfaces>
    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
        <socket-binding name="ajp" port="8009"/>
        <socket-binding name="hotrod" port="11222"/>
        <socket-binding name="http" port="8080"/>
        <socket-binding name="https" port="8443"/>
        <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:234.99.54.14}" multicast-port="45700"/>
        <socket-binding name="jgroups-tcp" port="7600"/>
        <socket-binding name="jgroups-tcp-fd" port="57600"/>
        <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:234.99.54.14}" multicast-port="45688"/>
        <socket-binding name="jgroups-udp-fd" port="54200"/>
        <socket-binding name="memcached" port="11211"/>
        <socket-binding name="modcluster" port="0" multicast-address="224.0.1.115" multicast-port="23364"/>
        <socket-binding name="remoting" port="4447"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <socket-binding name="websocket" port="8181"/>
    </socket-binding-group>
</server>

任何帮助将不胜感激!

【问题讨论】:

    标签: jboss infinispan jgroups


    【解决方案1】:

    我认为你必须在 元素中定义接口,所以在 jgroups-udp 或 jgroups-tcp 中。这些是在配置末尾定义的,您可以尝试查看 JGroups 变量替换是否有效,例如“${my.interface:GLOBAL}”。

    【讨论】:

    • 我刚刚尝试过,但没有帮助;我想这是没用的,因为 中的默认接口是“public”,它已经具有值 (据我了解,它类似于 GLOBAL)。我已经用这些设置更新了帖子。另外,socket-binding-group中指定的接口和jgroups设置中TCP或UDP元素的bind_addr属性中指定的接口是什么关系?
    【解决方案2】:

    我已经从 JGroups 设置中完全删除了 socket-binding 属性,只留下了 bind_addr 属性 - 现在它可以工作了。我很好奇它们之间有什么区别。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,并在 JGroups 文档中找到了解决方案, https://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/ch19s07s07.html

      使用-Djgroups.ignore.bind_addr=true 运行将强制它覆盖系统属性“bind_addr”并改用 XML bind_addr。

      文件说,

      "这个设置告诉 JGroups 忽略 jgroups.bind_addr 系统 属性,而是使用 XML 中指定的任何内容"

      【讨论】:

        猜你喜欢
        • 2016-06-21
        • 2015-01-18
        • 1970-01-01
        • 2015-01-02
        • 2017-11-09
        • 1970-01-01
        • 2011-07-09
        • 2023-03-12
        • 2013-07-19
        相关资源
        最近更新 更多