跳到主要内容

配置集群链接

集群链接连接节点(无论是在同一个集群内还是在两个不同的集群之间),并允许它们交换拓扑信息、订阅和数据。

集群链接由以下部分组成:

  • 一个控制通道
  • 一个客户端配置文件
  • 每个消息VPN的一个数据通道

如上图所示,数据通道由桥和队列组成:

img

对于外部集群链接,还有一个额外的桥对象,称为DMR桥,它建立了集群之间的数据通道(未显示)。

要从给定节点创建到远程节点的集群链接,请输入以下命令:

solace(configure)# routing
solace(configure/routing)# dynamic-message-routing
solace(configure/routing/dynamic-message-routing)# cluster <cluster-name>
solace(configure/routing/dynamic-message-routing/cluster)# create link <node-name>

要配置现有的集群链接,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster)# link <node-name>

要启用集群链接,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# no shutdown

其中:

<node-name> 是远程节点的名称。作为一个特殊情况,<node-name> 可以是字符串 #ACTIVE,它代表当前活动的消息代理为由该消息代理的活动-备用角色定义的虚拟路由器的活动链接。这个特殊的集群链接始终存在,不能被移除。

如果远程节点是一个HA组,请使用主消息代理的 <node-name>。此外,当您配置远程节点连接参数时,需要提供主节点和备份节点的详细信息(参考为远程节点设置连接地址)。

您可以为现有链接执行的配置任务包括:

  • 设置链接跨度
  • 设置链接发起者
  • 为远程节点设置连接地址
  • 设置链接传输方法
  • 在链接上配置认证
  • 配置链接的重试连接
  • 启用TLS/SSL加密
  • 设置DMR消息池的窗口大小
  • 为集群链接配置客户端配置文件
  • 配置集群链接队列
  • 设置集群链接属性

如果您正在配置DMR集群链接,并且您已经(或将要)启用复制,请确保您的链接设置遵循在复制中配置集群链接的指南。

在同一集群内的节点之间的链接称为内部链接,而不同集群的节点之间的链接称为外部链接。链接的这种特性称为链接的跨度。链接的每个端点必须就其跨度达成一致,否则将发生拓扑错误。所有链接的默认跨度是外部。

要配置集群链接的跨度,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# span {internal | external}

其中:

internal 指定连接到同一集群内的节点。

external 指定连接到不同集群中的节点。

虽然消息在链接上双向交换,但底层的TCP连接只由一方建立,这取决于发起者的值。链接的每个端点必须就发起者达成一致,否则链接将被禁用。默认的发起者是按字典顺序排列的。

要配置链接的TCP连接的发起者,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# initiator {lexical | local | remote}

其中:

lexical 指定具有较高 node-name 的节点发起连接。

local 指定本地节点发起连接。链接的另一端必须指定 remote

remote 指定远程节点发起连接。链接的另一端必须指定 local

对于生产部署,我们建议使用 localremote 链接发起者配置。

为远程节点设置连接地址

您可以为每个链接提供多达四个地址或完全限定域名(FQDN),并将按轮询方式尝试每个地址。当远程节点可能由多个事件代理实现时,需要多个地址,以实现冗余和/或复制的目的。

要配置远程节点可从以下IP地址和可选端口访问,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# connect-via <addr-port>

其中:

<addr-port> 是IP地址或FQDN,以及远程节点可从以下TCP端口访问的可选值。对于连接到设备,<addr-port> 必须解析为远程设备的msg-backbone VRF。IPv4地址必须以点分十进制表示法指定,nnn.nnn.nnn.nnn。在SolOS版本9.12.0及更高版本中,支持IPv6格式化字符串(RFC 5952),但这些地址必须用方括号括起来。端口指定为0到65535的十进制值。例如,正确格式化的IPv4地址是:192.168.100.1:55555。同一地址的IPv6格式是 [::ffff:c0a8:6401]:55555。如果未指定端口,则默认为纯文本55555,压缩55003,或SSL 55443。FQDN可以包含多达253个字符。

只有在发起连接的代理上才需要配置 connect-via 地址。

链接传输可以加密、压缩或两者兼有。虽然每个链接使用加密和压缩的选择是独立的,但每个单独链接的控制和数据通道共享相同的加密和压缩设置。

启用压缩

您可以在链接上启用或禁用压缩。链接的每个端点必须就压缩的选择达成一致,否则链接将表现为禁用状态。压缩默认是禁用的。

要启用压缩,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# transport compressed

启用TLS/SSL加密

您可以在链接上启用或禁用加密。链接的每个端点必须就加密的选择达成一致,否则链接将表现为禁用状态。加密默认是禁用的。

链接在出站连接到远程节点时提供的密码套件与发送节点允许用于传入消息骨干连接的全局配置的密码套件相同。

要启用TLS/SSL加密,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# transport ssl

每个单独的节点都配置了它对任何链接可接受的认证形式(基本认证、客户端证书认证或两者兼有)。要呈现给远程端的凭据在全局作用域内为集群配置(参考在集群上配置认证),但也可以逐链接覆盖。

设置认证方案

您可以配置链接用于初始化与远程节点连接的认证方案。链接支持基本认证和客户端证书认证。

要配置认证方案,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# authentication
solace(configure/routing/dynamic-message-routing/cluster/link/authentication)# auth-scheme {basic | client-certificate}

其中:

basic 指定使用基本认证。

client-certificate 指定使用客户端证书认证。

为基本内部认证设置密码

您可以配置用于与远程节点认证的密码。此密码只需要在链接的发起端配置,并且必须与远程节点上配置的预期密码匹配。当未配置此逐链接密码时,将使用集群密码。

要配置用于与远程节点认证的密码,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# authentication
solace(configure/routing/dynamic-message-routing/cluster/link/authentication)# basic
solace(configure/routing/dynamic-message-routing/cluster/link/authentication/basic)# password <password>

其中:

<password> 指定用于认证的密码。

配置链接的重试连接

对于使用10.8.1及更高版本的事件代理,您可以配置尝试连接到远程DMR节点上的Message VPN的重试次数和重试之间的等待时间。

对于使用10.8.0或更早版本的事件代理,默认重试次数和等待时间分别为0和3秒,不能配置。

当需要更多尝试或更多时间来建立连接时,需要配置重试次数和等待时间。例如,如果DMR节点之间存在潜在的延迟问题(例如,由于地理距离大),您可能希望增加重试等待时间,以允许更多时间来建立集群链接的连接。有关更多信息,请参见配置最大重试次数和配置重试前的等待时间。

您也不能在 #ACTIVE 链接上配置重试次数或延迟。

配置最大重试次数

您可以输入以下CONFIG命令来配置在尝试下一个备用远程目的地之前,对另一个DMR节点上的远程Message VPN的重试次数。例如,如果重试次数设置为1,则每个备用远程目的地总共进行了两次连接尝试,其中您进行了初次尝试和一次重试。

要配置重试次数,请在Solace CLI中运行以下CONFIG命令:

solace(configure/routing/dynamic-message-routing)# cluster <link-name> link <remote-node-name>
solace(configure/routing/dynamic-message-routing/cluster/link)# retry count <count>

其中:

<count> 是一个整数,范围从0到255,表示尝试连接的次数。默认值是0。

此命令的no版本(no remote retry count)将重试次数重置回默认值。

配置重试前的等待时间

您可以输入以下CONFIG命令来配置在尝试使用 retry delay 建立连接之前等待连接建立的秒数:

solace(configure/routing/dynamic-message-routing)# cluster <cluster-name> link <remote-node-name>
solace(configure/routing/dynamic-message-routing/cluster/link)# retry delay <seconds>

其中:

<seconds> 是一个整数,范围从0到255,表示在重试连接之前等待的秒数。默认值是3。

此命令的no版本将等待秒数重置为默认值。

设置DMR消息池的窗口大小

要配置在收到本地节点确认之前,可以向远程节点发出的保证消息的窗口大小,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# message-spool
solace(configure/routing/dynamic-message-routing/cluster/link/message-spool)# window-size <number>

其中:

<number> 指定保证消息传输窗口大小,以消息数量表示。

集群链接客户端配置文件用于为已成功授权的链接连接分配一组共同的配置属性。

您可以配置每个集群链接使用的客户端配置文件的各种属性,包括:

  • 配置出站优先级队列
  • 配置客户端TCP设置

有关在PubSub+事件代理上配置客户端配置文件的更多信息,请参阅配置客户端配置文件。

尽管集群链接客户端配置文件与普通客户端配置文件共享属性,但它们是不同的对象。

要配置集群链接客户端配置文件属性,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# client-profile

集群链接队列用于在消息通过数据连接发送到邻居节点之前将消息排队。这些TCP传输队列用于管理从节点通过链接传输到其邻居的数据流。

您可以配置集群链接队列的各种属性,包括:

  • 配置死信队列
  • 配置队列事件阈值
  • 配置允许的最大已传递未确认消息数量
  • 配置最大重试次数
  • 配置最大池使用值
  • 配置最大消息TTLs
  • 配置消息丢弃处理
  • 强制是否尊重TTLs

有关在Solace PubSub+事件代理上配置队列的更多信息,请参阅配置队列。

尽管集群链接队列与普通队列共享属性,但它们是不同的对象。

要配置集群链接队列属性,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# queue

各种集群链接队列属性的初始值可能与普通队列的默认设置不同。

设置集群链接属性

集群链接属性是键值对,可用于定位DMR集群链接,例如在使用客户端证书匹配规则时。有关更多信息,请参见配置客户端证书匹配规则。

要创建集群链接属性,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# create attribute <name> <value>

其中:

<name> 是属性的名称(最多64个字符)。

<value> 是属性的值(最多256个字符)。

此命令的no版本,no attribute <name> <value>,用于移除属性。

以下示例为链接设置了一个名为 span 的集群链接属性,值为 internal。如果在集群上配置了适当的客户端证书属性过滤器,事件代理将在该链接尝试与远程节点认证时应用任何相应的证书匹配条件。

solace(configure/routing/dynamic-message-routing/cluster/link)# create attribute span internal

您提供的链接是Solace官方文档中关于“配置集群链接”的页面。以下是该页面内容的中文翻译摘要:

配置集群链接

集群链接连接节点(无论是在同一个集群内还是在两个不同的集群之间),并允许它们交换拓扑信息、订阅和数据。

集群链接由以下部分组成:

  • 一个控制通道
  • 一个客户端配置文件
  • 每个消息VPN的一个数据通道

如上图所示,数据通道由桥和队列组成:

DMR-Link-Objects.png

对于外部集群链接,还有一个额外的桥对象,称为DMR桥,它建立了集群之间的数据通道(未显示)。

要从给定节点创建到远程节点的集群链接,请输入以下命令:

solace(configure)# routing
solace(configure/routing)# dynamic-message-routing
solace(configure/routing/dynamic-message-routing)# cluster <cluster-name>
solace(configure/routing/dynamic-message-routing/cluster)# create link <node-name>

要配置现有的集群链接,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster)# link <node-name>

要启用集群链接,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# no shutdown

其中:

<node-name> 是远程节点的名称。作为一个特殊情况,<node-name> 可以是字符串 #ACTIVE,它代表当前活动的消息代理为由该消息代理的活动-备用角色定义的虚拟路由器的活动链接。这个特殊的集群链接始终存在,不能被移除。

如果远程节点是一个HA组,请使用主消息代理的 <node-name>。此外,当您配置远程节点连接参数时,需要提供主节点和备份节点的详细信息(参考设置远程节点的连接地址)。

您可以为现有链接执行的配置任务包括:

  • 设置链接跨度
  • 设置链接发起者
  • 设置远程节点的连接地址
  • 设置链接传输方法
  • 在链接上配置认证
  • 配置链接的重试连接
  • 启用TLS/SSL加密
  • 设置DMR消息池的窗口大小
  • 为集群链接配置客户端配置文件
  • 配置集群链接队列
  • 设置集群链接属性

如果您正在配置DMR集群链接,并且您已经(或将要)启用复制,请确保您的链接设置遵循在复制中配置集群链接的指南。

设置链接跨度

在同一集群内的节点之间的链接称为内部链接,而不同集群的节点之间的链接称为外部链接。链接的这种特性称为链接的跨度。链接的每个端点必须就其跨度达成一致,否则将发生拓扑错误。所有链接的默认跨度是外部。

要配置集群链接的跨度,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# span {internal | external}

其中:

internal 指定连接到同一集群内的节点。

external 指定连接到不同集群中的节点。

设置链接发起者

虽然消息在链接上双向交换,但底层的TCP连接只由一方建立,这取决于发起者的值。链接的每个端点必须就发起者达成一致,否则链接将被禁用。默认发起者是按字典顺序排列的。

要配置链接的TCP连接的发起者,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# initiator {lexical | local | remote}

其中:

lexical 指定具有较高 node-name 的节点发起连接。

local 指定本地节点发起连接。链接的另一端必须指定 remote

remote 指定远程节点发起连接。链接的另一端必须指定 local

对于生产部署,我们建议使用 localremote 链接发起者配置。

设置远程节点的连接地址

您可以为每个链接提供多达四个地址或完全限定域名(FQDN),并将按轮询方式尝试每个地址。当远程节点可能由多个事件代理实现时,需要多个地址,以实现冗余和/或复制的目的。

要配置远程节点可从以下IP地址和可选端口访问,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# connect-via <addr-port>

其中:

<addr-port> 是IP地址或FQDN,以及远程节点可从以下TCP端口访问的可选值。对于连接到设备,<addr-port> 必须解析为远程设备的msg-backbone VRF。IPv4地址必须以点分十进制表示法指定,nnn.nnn.nnn.nnn。在SolOS版本9.12.0及更高版本中,支持IPv6格式化字符串(RFC 5952),但这些地址必须用方括号括起来。端口指定为0到65535的十进制值。例如,一个正确格式化的IPv4地址是:192.168.100.1:55555。同一地址的IPv6格式是 [::ffff:c0a8:6401]:55555。如果未指定端口,则默认为纯文本55555,压缩55003,或SSL 55443。FQDN可以包含多达253个字符。

只有在发起连接的代理上才需要配置 connect-via 地址。

设置链接传输方法

链接传输可以加密、压缩或两者兼有。虽然每个链接使用加密和压缩的选择是独立的,但每个单独链接的控制和数据通道共享相同的加密和压缩设置。

启用压缩

您可以在链接上启用或禁用压缩。链接的每个端点必须就压缩的选择达成一致,否则链接将表现为禁用状态。压缩默认是禁用的。

要启用压缩,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# transport compressed

启用TLS/SSL加密

您可以在链接上启用或禁用加密。链接的每个端点必须就加密的选择达成一致,否则链接将表现为禁用状态。加密默认是禁用的。

链接在出站连接到远程节点时提供的密码套件与发送节点允许用于传入消息骨干连接的全局配置的密码套件相同。

要启用TLS/SSL加密,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# transport ssl

在链接上配置认证

每个单独的节点都配置了它对任何链接可接受的认证形式(基本认证、客户端证书认证或两者兼有)。要呈现给远程端的凭据在全局作用域内为集群配置(参考在集群上配置认证),但也可以逐链接覆盖。

设置认证方案

您可以配置链接用于初始化与远程节点连接的认证方案。链接支持基本认证和客户端证书认证。

要配置认证方案,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# authentication
solace(configure/routing/dynamic-message-routing/cluster/link/authentication)# auth-scheme {basic | client-certificate}

其中:

basic 指定使用基本认证。

client-certificate 指定使用客户端证书认证。

设置基本内部认证的密码

您可以配置用于与远程节点认证的密码。此密码只需要在链接的发起端配置,并且必须与远程节点上配置的预期密码匹配。当未配置此逐链接密码时,将使用集群密码。

要配置用于与远程节点认证的密码,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# authentication
solace(configure/routing/dynamic-message-routing/cluster/link/authentication)# basic
solace(configure/routing/dynamic-message-routing/cluster/link/authentication/basic)# password <password>

其中:

<password> 指定用于认证的密码。

配置链接的重试连接

对于使用10.8.1及更高版本的事件代理,您可以配置尝试连接到远程DMR节点上的Message VPN的重试次数和重试之间的等待时间。

对于使用10.8.0或更早版本的事件代理,默认重试次数和等待时间分别为0和3秒,不能配置。

当需要更多尝试或更多时间来建立连接时,需要配置重试次数和等待时间。例如,如果DMR节点之间存在潜在的延迟问题(例如,由于地理距离大),您可能希望增加重试等待时间,以允许更多时间来建立集群链接的连接。有关更多信息,请参见配置最大重试次数和配置重试前的等待时间。

您也不能在 #ACTIVE 链接上配置重试次数或延迟。

配置最大重试次数

您可以输入以下CONFIG命令来配置在尝试下一个备用远程目的地之前,对另一个DMR节点上的远程Message VPN的重试次数。例如,如果重试次数设置为1,则每个备用远程目的地总共进行了两次连接尝试,其中您进行了初次尝试和一次重试。

要配置重试次数,请在Solace CLI中运行以下CONFIG命令:

solace(configure/routing/dynamic-message-routing)# cluster <link-name> link <remote-node-name>
solace(configure/routing/dynamic-message-routing/cluster/link)# retry count <count>

其中:

<count> 是一个整数,范围从0到255,表示尝试连接的次数。默认值是0。

此命令的no版本(no remote retry count)将重试次数重置回默认值。

配置重试前的等待时间

您可以输入以下CONFIG命令来配置在尝试使用 retry delay 建立连接之前等待连接建立的秒数:

solace(configure/routing/dynamic-message-routing)# cluster <cluster-name> link <remote-node-name>
solace(configure/routing/dynamic-message-routing/cluster/link)# retry delay <seconds>

其中:

<seconds> 是一个整数,范围从0到255,表示在重试连接之前等待的秒数。默认值是3。

此命令的no版本将等待秒数重置为默认值。

设置DMR消息池的窗口大小

要配置在收到本地节点确认之前,可以向远程节点发出的保证消息的窗口大小,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# message-spool
solace(configure/routing/dynamic-message-routing/cluster/link/message-spool)# window-size <number>

其中:

<number> 指定保证消息传输窗口大小,以消息数量表示。

为集群链接配置客户端配置文件

集群链接客户端配置文件用于为已成功授权的链接连接分配一组共同的配置属性。

您可以配置每个集群链接使用的客户端配置文件的各种属性,包括:

  • 配置出站优先级队列
  • 配置客户端TCP设置

有关在PubSub+事件代理上配置客户端配置文件的更多信息,请参阅配置客户端配置文件。

尽管集群链接客户端配置文件与普通客户端配置文件共享属性,但它们是不同的对象。

要配置集群链接客户端配置文件属性,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# client-profile

配置集群链接队列

集群链接队列用于在消息通过数据连接发送到邻居节点之前将消息排队。这些TCP传输队列用于管理从节点通过链接传输到其邻居的数据流。

您可以配置集群链接队列的各种属性,包括:

  • 配置死信队列
  • 配置队列事件阈值
  • 配置允许的最大已传递未确认消息数量
  • 配置最大重试次数
  • 配置最大池使用值
  • 配置最大消息TTLs
  • 配置消息丢弃处理
  • 强制是否尊重TTLs

有关在Solace PubSub+事件代理上配置队列的更多信息,请参阅配置队列。

尽管集群链接队列与普通队列共享属性,但它们是不同的对象。

要配置集群链接队列属性,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# queue

各种集群链接队列属性的初始值可能与普通队列的默认设置不同。

设置集群链接属性

集群链接属性是键值对,可用于定位DMR集群链接,例如在使用客户端证书匹配规则时。有关更多信息,请参见配置客户端证书匹配规则。

要创建集群链接属性,请输入以下命令:

solace(configure/routing/dynamic-message-routing/cluster/link)# create attribute <name> <value>

其中:

<name> 是属性的名称(最多64个字符)。

<value> 是属性的值(最多256个字符)。

此命令的no版本,no attribute <name> <value>,用于移除属性。

以下示例为链接设置了一个名为 span 的集群链接属性,值为 internal。如果集群上配置了适当的客户端证书属性过滤器,事件代理将在该链接尝试与远程节点认证时应用任何相应的证书匹配条件。

solace(configure/routing/dynamic-message-routing/cluster/link)# create attribute span internal