是否可以在JBoss 7 / WildFly节点上在运行时禁用群集?

时间:2014-10-15 20:17:35

标签: jboss jboss7.x wildfly


我们需要不时地在WildFly集群节点的节点上执行一些维护。在这些操作期间,我们希望节点离开集群,但仍然可以通过CLI或Web控制台管理其配置。
稍后,成员应返回到集群。 有没有服务器重启的任何建议如何做到这一点?
感谢

1 个答案:

答案 0 :(得分:3)

我认为这种情况值得探讨,特别是在独立模式下,群集中的每个服务器都可以具有单独的配置,因此您可能需要在服务器级别进行一些维护。话虽这么说,您可以使用多播地址从群集中关闭服务器或服务器组,稍后,一旦完成维护,就让它返回到群集。 1.首先查找未在网络中使用的多播地址。
2.接下来,创建一个新的Socket Binding组,该组具有自定义的jgroups-udp IP地址(如果您使用的是TCP集群,则为jgroups-tcp):

<socket-binding-group name="ha-sockets.maintenance" default-interface="public">
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" 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:230.0.0.11}" multicast-port="45688"/>
    <socket-binding name="jgroups-udp-fd" port="54200"/>
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

现在,当您需要从群集中临时删除服务器组时,只需从CLI发出(您也可以使用管理控制台):

/server-group=other-server-group/:write-attribute(name=socket-binding-group,value=ha-sockets.maintenance)

在上述操作之后,您还需要重新加载主机:

reload --host=master

现在,其他服务器组将离开群集,以便您可以执行维护。 稍后,您可以通过设置标准ha-sockets绑定来让服务器组加入群集:

/server-group=other-server-group/:write-attribute(name=socket-binding-group,value=ha-sockets)

作为一个侧节点,请考虑您甚至可以在服务器级别设置套接字绑定:

/host=master/server-config=server-one/:write-attribute(name=socket-binding-group,value=ha-sockets.maintenance)

我不建议,因为您的服务器之间将有一个不同步的配置,这些服务器是服务器组的一部分。希望能帮助到你。有关详细信息,请查看此tutorial