跳到主要内容

系统级消息缓冲配置

本节提供了您可以为Solace PubSub+事件代理配置的系统级消息缓冲参数的信息。这些参数对于保证消息传递的运行至关重要。本节还提供了如何启用或禁用事件代理的消息缓冲的信息。

除了在使用保证消息传递时配置消息缓冲参数外,考虑事件代理可以在消息缓冲中存储的最大消息数量也很重要。您可以使用max-queue-messages系统扩展参数增加事件代理支持的队列消息数量。有关更多信息,请参见队列消息的最大数量。

配置同步(Config-Sync)不会自动同步硬件属性。因此,如果事件代理在高可用性(HA)对或复制站点中使用,您必须手动在每个配对事件代理或复制的消息VPN上配置硬件消息缓冲属性。

要确定对象或属性是否已同步,请在CLI命令参考中查找用于配置对象或属性的命令,或者在Solace CLI中以“?”结尾的命令。帮助将列出对象/属性是否已同步。

当使用高可用性(HA)冗余事件代理时,为每对冗余事件代理启用配置同步。启用配置同步可以减少可能的配置和输入错误,并在发生冗余切换时提高处理保证消息传递信息的速度。有关更多信息,请参见配置同步。

配置外部磁盘阵列

当在独立设备或冗余对设备上使用保证消息传递时,可以使用外部磁盘存储阵列进行消息缓冲。

要配置访问外部磁盘存储阵列上的LUN时使用的全球名称(WWN),请输入以下CONFIG命令:

solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# disk-array wwn <wwn>

其中:

wwn <wwn> 是全球名称。如果在网络地址权威(NAA)格式中,它是一个独特的8字节或16字节数字,表示为由冒号分隔的十六进制字符字符串,以1、2、5或6开头(例如:50:00:2a:c0:00:f1:33:7460:06:01:60:bf:51:12:00:9a:fb:40:97:83:3f:dc:11)。如果不在NAA格式中,它可以是任何不包含冒号的字符串。默认值为Null。

  • 在通过disk-array消息缓冲CONFIG命令配置外部磁盘存储阵列的WWN之前,您必须首先(按给定顺序):
    • 使用delete-messages消息缓冲Admin EXEC命令删除设备上为使用客户端缓冲的所有消息
    • 输入shutdown消息缓冲CONFIG命令停止设备上的消息缓冲(如果已启动)
    • 通过no internal-disk消息缓冲CONFIG命令禁用设备上的内部磁盘驱动器用于消息缓冲
  • 此命令的无版本(no disk-array)将WWN重置为其默认值Null。
  • 有关如何在访问外部磁盘存储阵列上的LUN后配置事件代理上的分区和文件系统的信息,请参见配置外部磁盘阵列以进行保证消息传递。

外部磁盘存储阵列的文件系统可能会被破坏,如果两个或更多的非冗余事件代理声明对同一外部磁盘存储阵列拥有所有权并成功修改相同的文件系统。

为了避免这种情况,如果检测到磁盘所有权冲突,将停止挂载外部磁盘存储阵列,并在show message-spool detail用户EXEC命令输出的详细状态和使用项目摘要屏幕上显示“Disk Contents Invalid”,声明磁盘存储阵列为不可用。

系统管理员随后可以通过使用assert-disk-ownership消息缓冲Admin EXEC命令使一个事件代理拥有冲突的磁盘存储阵列。

配置系统消息缓冲事件阈值

要配置控制事件代理生成系统级消息缓冲事件的阈值,请输入以下CONFIG命令:

solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# event

从CLI的此级别,您现在可以配置代理生成与消息缓冲相关的系统级事件的阈值。

有关可用的系统级消息缓冲事件和如何设置它们的阈值的信息,请参见配置系统消息缓冲事件阈值。

配置最大缓冲使用量

要配置可以用于缓冲消息的最大磁盘空间量,请输入以下CONFIG命令:

solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# max-spool-usage <size>

其中:

<size> 是一个整数,指定代理整体可以使用的最大消息缓冲磁盘空间量(以MB为单位)。有效范围从0(在这种情况下,缓冲实际上被禁用)到整个系统支持的最大消息缓冲磁盘空间量。有关此设置的默认值的详细信息,请参见最大缓冲使用量。

此命令的无版本,no max-spool-usage,将事件代理的本地缓冲配额大小重置回默认值。

当使用外部磁盘存储阵列与冗余设备对一起使用保证消息传递时,需要在阵列上创建两个分区——每个设备一个分区。所需的分区大小取决于使用此命令配置的最大消息缓冲磁盘空间大小。一般的经验法则是创建两个分区,大小是配置的最大消息缓冲磁盘空间大小的1.1倍。例如,如果您使用此命令将设备的最大缓冲使用量配置为600,000 MB(即600 GB),则Solace建议您在阵列上创建两个分区,大小为600 x 1.1。这等于每个分区660 GB,总共为1,320 GB的逻辑单元号(LUN)。有关更多信息,请参见通过活动/备用冗余进行保证消息传递的SAN行为。有关如何在访问外部磁盘存储阵列上的LUN后配置Solace PubSub+设备上的分区和文件系统的信息,请参见配置外部磁盘阵列以进行保证消息传递。

配置最大缓存使用量

当事件代理处理保证消息时,其保证消息缓存可以使用一些也用于其NAB出站队列的数据缓冲资源(见消息传递资源)。

要配置保证消息缓存可以使用的NAB数据缓冲资源的最大百分比,请输入以下CONFIG命令:

solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# max-cache-usage <percent-usage>

其中:

<percent-usage> 是保证消息缓存被允许使用的NAB数据缓冲的最大百分比。有效值为0(禁用保证消息缓存功能),或1至50。默认值为10。

此命令的无版本,no max-cache-usage,将保证消息缓存可以使用的NAB数据缓冲的最大百分比重置回默认值。

当保证消息缓存的利用率达到最大限制时,保证消息缓存将不再用于处理后续的保证消息。

配置保证消息传递的活动/活动HA角色

如果HA配置设置为活动/活动,您必须为保证消息传递配置设备将扮演的HA角色。

如果HA配置未设置为活动/活动(换句话说,如果活动/备用角色设置为除none之外的值),则设备将忽略此设置,并且对保证消息传递配置没有影响。有关活动/备用角色的更多信息,请参见配置冗余参数。

要配置设备在HA配置设置为活动/活动时将扮演的HA角色,请输入以下CONFIG命令:

solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# virtual-router-when-active-active {primary | backup}

其中:

primary 将HA角色设置为primary。换句话说,这启用了主虚拟路由器的消息缓冲。

backup 将HA角色设置为backup。换句话说,这启用了备份虚拟路由器的消息缓冲。

此命令的无版本,no virtual-router-when-active-active,将HA角色重置回默认值(primary)。

启用内部磁盘进行消息缓冲

默认情况下,设备的内部物理磁盘驱动器在保证消息传递中用于消息缓冲是禁用的,必须使用客户提供的外部磁盘存储阵列进行保证消息传递的消息缓冲。

Solace建议使用客户提供的外部磁盘存储阵列来支持保证消息传递。不推荐使用设备的内部磁盘驱动器进行消息缓冲。有关更多信息,请联系Solace。

要启用设备的内部磁盘驱动器进行消息缓冲,请输入以下CONFIG命令:

solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# internal-disk

此命令的无版本,no internal-disk,禁用内部磁盘驱动器进行消息缓冲。

  • 在通过internal-disk消息缓冲CONFIG命令在内部和外部磁盘之间更改之前,您必须首先(按给定顺序):
  1. 重置消息缓冲。有关说明,请参见重置保证消息缓冲。
  2. 使用shutdown消息缓冲CONFIG命令停止事件代理上的消息缓冲(如果已启动)。
  • 如果事件代理冗余已启用,则不能通过internal-disk消息缓冲CONFIG命令启用内部磁盘驱动器进行消息缓冲。在这种情况下,您必须首先通过shutdown冗余CONFIG命令停止事件代理的冗余设施(如果正在运行):
solace(configure)# redundancy

solace(configure/redundancy)# shutdown

启用保证消息缓冲

  • 总是在维护窗口内执行消息缓冲状态更改,以防止服务中断。

  • 在更改事件代理上的消息缓冲状态之前,始终断开所有客户端连接。要断开客户端连接,要么通过Solace消息API关闭客户端会话,要么终止客户端应用程序。

  • 在事件代理上完成消息缓冲状态更改后,客户端可以重新连接到它。

  • 在为保证消息传递服务设置事件代理网络时,总是在配置事件代理之间的邻居链接之前执行消息缓冲状态更改。否则,它们可能无法正确地相互广告其保证消息传递能力。

默认情况下,Solace PubSub+设备上未启用保证消息缓冲,但Solace PubSub+软件事件代理上已启用。

  • 要启动保证消息缓冲,请输入以下CONFIG命令:
solace# configure

solace(configure)# hardware message-spool

solace(configure/hardware/message-spool)# no shutdown
  • 要停止事件代理上的保证消息缓冲,请输入以下CONFIG命令:
solace(configure/hardware/message-spool)# shutdown
  • 如果先前已输入no shutdown backup消息缓冲CONFIG命令,则不允许no shutdown primary消息缓冲CONFIG命令。在这种情况下,您必须首先输入shutdown消息缓冲CONFIG命令以禁用备份事件代理配置。
  • 如果已经为备份事件代理(即,备份VRID)缓冲了消息,则不允许no shutdown primary消息缓冲CONFIG命令。在这种情况下,您必须首先使用delete-messages消息缓冲Admin EXEC命令删除所有客户端的缓冲消息。
  • 如果设备的内部磁盘被禁用用于消息缓冲,并且尚未通过disk-array消息缓冲CONFIG命令预先配置用于访问外部磁盘存储阵列上的LUN的全球名称(WWN)。在这种情况下,您必须首先为外部磁盘存储阵列配置WWN。
  • 如果先前已输入no shutdown primary消息缓冲CONFIG命令,则不允许no shutdown backup消息缓冲CONFIG命令。在这种情况下,您必须首先输入shutdown消息缓冲CONFIG命令以禁用主事件代理配置。
  • 如果已经为主事件代理(即,主VRID)缓冲了消息,则不允许no shutdown backup消息缓冲CONFIG命令。在这种情况下,您必须首先使用delete-messages消息缓冲Admin EXEC命令删除所有客户端的缓冲消息。
  • 如果通过internal-disk消息缓冲CONFIG命令启用了事件代理的内部磁盘驱动器用于消息缓冲,则不允许no shutdown backup消息缓冲CONFIG命令。在这种情况下,您必须首先输入no internal-disk消息缓冲CONFIG命令以禁用内部磁盘驱动器用于消息缓冲。
  • 如果通过no internal-disk消息缓冲CONFIG命令禁用了事件代理的内部磁盘驱动器用于消息缓冲,并且尚未通过disk-array消息缓冲CONFIG命令预先配置用于访问外部磁盘存储阵列上的LUN的全球名称(WWN)。在这种情况下,您必须首先为外部磁盘存储阵列配置WWN。
  • 运行no shutdown primaryno shutdown backup消息缓冲CONFIG命令会自动清除所有当前缓冲消息的统计信息。