19.4.4. 为 HornetQ 群集切换 UDP 至 TCP

下面的例子使用了 EAP 6 附带的 standalone-full-ha.xml 默认配置文件。

注意

如果启用了安全性,您必须设置 cluster-password 属性:
<cluster-password>${jboss.messaging.cluster.password:ChangeMe>}</cluster-password>
  1. 删除 broadcast-groups 和 discovery-groups:

    <broadcast-groups>
        <broadcast-group name="bg-group1">
            <socket-binding>messaging-group</socket-binding>
            <broadcast-period>5000</broadcast-period>
            <connector-ref>netty</connector-ref>
        </broadcast-group>
    </broadcast-groups>
    <discovery-groups>
        <discovery-group name="dg-group1">
            <socket-binding>messaging-group</socket-binding>
            <refresh-timeout>10000</refresh-timeout>
        </discovery-group>
    </discovery-groups
    
    
  2. 也可以选择删除 "messaging-group" 套接字绑定

    <socket-binding name="messaging-group" port="0" multicast-address="${jboss.messaging.group.address:231.7.7.7}" multicast-port="${jboss.messaging.group.port:9876}"/>
    
  3. 配置合适的 Netty 连接器 - 群集里的其他每个节点都对应一个。

    例如,如果群集是三个节点则配置两个 Netty 连接器;如果群集是两个节点则配置一个 Netty 连接器。下面是关于三个节点群集的配置示例:
    <netty-connector name="other-cluster-node1" socket-binding="other-cluster-node1"/>
    <netty-connector name="other-cluster-node2" socket-binding="other-cluster-node2"/>
    
  4. 配置相关的套接字绑定。

    注意

    如果需要,系统属性替换可以用于 "host" 或 "port"。
    <outbound-socket-binding name="other-cluster-node1">
        <remote-destination host="otherNodeHostName1" port="5445"/>
    </outbound-socket-binding>
    <outbound-socket-binding name="other-cluster-node2">
        <remote-destination host="otherNodeHostName2" port="5445"/>
    </outbound-socket-binding>
    
  5. 配置 cluster-connection 使用这些连接而不是默认的 discovery-group:

    <cluster-connection name="my-cluster">
        <address>jms</address>
        <connector-ref>netty</connector-ref>
        <static-connectors>
            <connector-ref>other-cluster-node1</connector-ref>
            <connector-ref>other-cluster-node2</connector-ref>
        </static-connectors>
    </cluster-connection>
    
    您必须为每个群集节点重复这个过程,这样每个节点都有对于群集里其他每个节点的连接器。

    注意

    请不要配置连接自身的节点。这会被当作配置错误。