【问题标题】:Is it possible to disable clustering at runtime on a JBoss 7/WildFly node?是否可以在运行时在 JBoss 7/WildFly 节点上禁用集群?
【发布时间】:2014-12-11 01:11:33
【问题描述】:


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

【问题讨论】:

  • 您使用的是哪种集群配置,域模式还是单机模式?
  • 我们使用域,但我认为配置类型无关紧要,因为它除了管理之外没有添加任何额外的功能。
  • 是的,这很不一样,在域模式下,域控制器集中配置并负责配置和配置,而在独立模式下,每个节点都有自己的配置。

标签: jboss jboss7.x wildfly


【解决方案1】:

我认为这种场景值得探索,尤其是在独立模式下,集群的每个服务器都可以有单独的配置,因此您可能需要在服务器级别进行一些维护。话虽如此,您可以使用多播地址从集群中关闭服务器或服务器组,然后在完成维护后,让它返回集群。
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

【讨论】:

  • 感谢您的详细解释。我已经进行了原始测试,它似乎工作得很好。谢谢!
猜你喜欢
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 2021-01-08
  • 2017-01-08
  • 2013-02-02
  • 1970-01-01
相关资源
最近更新 更多