24.2.4. 配置 TCPGOSSIP

此流程创建一个新的 JGroups 堆栈,它使用 TCPGOSSIP 协议来使用外部 Gosip 路由器发现群集的成员。我们提供了一个基础脚本,该脚本可创建 tcpgosip 堆栈,并将 default ee 通道设置为使用此新堆栈。此脚本中的管理 CLI 命令必须为您的环境自定义,并将作为批处理处理。

  1. 将以下脚本复制到文本编辑器中,并将它保存到本地文件系统。

    # Define the socket bindings
    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=jgroups-host-a:add(host=HOST_A,port=13001)
    batch
    # Add the tcpgossip stack
    /subsystem=jgroups/stack=tcpgossip:add
    /subsystem=jgroups/stack=tcpgossip/transport=TCP:add(socket-binding=jgroups-tcp)
    /subsystem=jgroups/stack=tcpgossip/protocol=TCPGOSSIP:add(socket-bindings=[jgroups-host-a])
    /subsystem=jgroups/stack=tcpgossip/protocol=MERGE3:add
    /subsystem=jgroups/stack=tcpgossip/protocol=FD_SOCK:add
    /subsystem=jgroups/stack=tcpgossip/protocol=FD_ALL:add
    /subsystem=jgroups/stack=tcpgossip/protocol=VERIFY_SUSPECT:add
    /subsystem=jgroups/stack=tcpgossip/protocol=pbcast.NAKACK2:add
    /subsystem=jgroups/stack=tcpgossip/protocol=UNICAST3:add
    /subsystem=jgroups/stack=tcpgossip/protocol=pbcast.STABLE:add
    /subsystem=jgroups/stack=tcpgossip/protocol=pbcast.GMS:add
    /subsystem=jgroups/stack=tcpgossip/protocol=MFC:add
    /subsystem=jgroups/stack=tcpgossip/protocol=FRAG2:add
    # Set tcpgossip as the stack for the ee channel
    /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcpgossip)
    run-batch
    reload

    请注意,定义的协议的顺序非常重要。您还可以通过传递 add-index 值到 add 命令,将协议插入到特定的索引中。索引基于零,因此以下管理 CLI 命令添加 UNICAST3 协议作为第七个协议:

    /subsystem=jgroups/stack=tcpgossip/protocol=UNICAST3:add(add-index=6)
  2. 为您的环境修改 脚本。

    • 如果您在受管域中运行,则必须通过 /profile= PROFILE_NAME/subsystem=jgroups 命令之前指定要更新的配置集
    • 根据您的环境调整以下属性:

      • 套接字绑定: 以逗号分隔的主机和端口组合列表,这些组合被视为众所周知的,并可用于查找初始成员身份。有关定义套接字绑定的更多信息,请参阅配置套接字绑定
      • initial_hosts :以逗号分隔的主机和端口组合列表,使用语法 HOST[PORT ] 这些 [ PORT ] 被视为广为人知且可用于查找初始成员资格,如 host1[1000],host2[2000]
      • port_range :此属性用于将 initial_hosts 端口范围扩展为指定的值。例如,如果您将 initial_hosts 设置为 host1[1000],host2[2000],并且 port_range 设为 1,则 initial_hosts 设置将扩展到 host1[1000],host1[1001],host2[2000],host2[2001]。此属性仅适用于 initial_hosts 属性。
      • reconnect_interval :断开连接的 stub 尝试重新连接到 gossip 路由器的间隔(以毫秒为单位)。
      • sock_conn_timeout :套接字创建的最大时间。默认值为 1000 毫秒。
      • sock_read_timeout :阻止读取的最大时间(以毫秒为单位)。值 0 将无限期阻止。
  3. 通过将 脚本文件传递到管理 CLI 来运行 脚本。

    $ EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAME

TCPGOSSIP 堆栈现已可用,TCP 用于网络通信。此堆栈配置为与 gossip 路由器搭配使用,以便 JGroups 群集成员能够查找其他群集成员。