跳到主要内容

配置消息重放

要开始使用Solace CLI在消息VPN上配置重放日志,您可以使用以下CONFIG命令。

solace> enable
solace# configure
solace(configure)# message-spool message-vpn <vpn-name>

其中:

  • <vpn-name> — 您希望设置或配置重放日志的消息VPN的名称。

在进入消息VPN后,您可以使用以下Solace CLI命令:

  • 配置消息重放
  • 指定要添加到重放日志中的消息
  • 禁用或启用重放日志

创建或删除重放日志

您可以在每个消息VPN上创建一个重放日志。要这样做,请使用以下create replay-log命令。

solace(configure/message-spool)# create replay-log <replay-log-name>

其中:

<replay-log-name> — 消息重放日志的名称。它可以长达185个字符,名称中不应包含以下字符或符号:

  • 井号(#
  • 小于(<
  • 大于(>
  • 星号(*
  • 问号(?
  • 和号(&
  • 分号(;

创建后,重放日志处于禁用状态。要启用消息重放,请运行no shutdown命令。例如:

solace(configure/message-spool/replay-log)# no shutdown

要删除重放日志及其所有记录的消息,请使用no replay-log <replay-log-name>命令,并在提示时输入y以确认删除重放日志。

请注意,运行no replay-log <replay-log-name>命令会不可逆地删除所有记录的消息!

solace(configure/message-spool/replay-log)# shutdown
solace(configure/message-spool/replay-log)# exit
solace(configure/message-spool)# no replay-log <replay-log-name>

此命令将删除消息VPN上的所有记录消息。
您是否要继续(y/n)?y

使用max-spool-usage配置重放日志大小

max-spool-usage命令允许您设置重放日志可以使用的最大空间。Solace建议您将重放日志的max-spool-usage配置为比您需要在重放日志中保留的数据量多25%。例如,如果您需要保留10,000 MB的数据,请将重放日志的max-spool-usage配置为12,500 MB。额外的25%包括:

  • 重放日志修剪,这发生在重放日志配置配额的90%时。

  • 重放日志被索引以优化性能,索引使用率包括在max-spool-usage的配置配额中。

max-spool-usage配置为比您需要保留的数据量多25%的建议是基于估计。实际的索引开销取决于存储在重放日志中的消息大小和主题长度。如果修剪过早或过度发生并影响所需数据的保留,请考虑相应地调整max-spool-usage

要配置重放日志,请在Solace CLI中执行以下命令:

solace(configure/message-spool)# replay-log <replay-log-name>
solace(configure/message-spool/replay-log)# max-spool-usage <size-in-MB>

其中:

<replay-log-name> — 消息重放日志的名称。

<size-in-MB> — 重放日志可以占用的最大空间,以兆字节(MB)为单位。设置此值时有以下特殊考虑:

  • 如果max-spool-usage为零(0),则不能在重放日志上运行no shutdown
  • 如果重放日志已启用,则不能将max-spool-usage设置为零(0)。

如果您将max-spool-usage更改为低于当前使用的值,您将导致日志被修剪,从最旧的消息开始。

no max-spool-usage命令将大小设置为零。

重放日志的存储使用量计入消息VPN的max-spool-usage,因此除了检查重放日志的max-spool-usage配置配额外,还要确保验证消息VPN的存储使用量(max-spool-usage)足够大,以允许消息存储在不在重放日志中的队列上。有关设置消息VPN的max-spool-usage值的更多信息,请参见消息VPN级保证消息配置。

指定要添加到重放日志中的消息

默认情况下,所有保证消息(未被拒绝给发布者)都存储在重放日志中。由于存储在重放日志中的每条已发布消息都会消耗消息存储空间,因此根据您的部署,您可能希望使用主题过滤器来包括或排除消息以提高性能,并控制写入重放日志的消息。

topic-filter命令允许您:

  • 提供主题过滤器订阅,指定哪些消息写入重放日志。不匹配配置主题的任何消息仍然会被传递给订阅客户端,但不会写入重放日志。
  • 配置通配符订阅。例如,您可以:
    • 使用大于符号(>)作为通配符来包含所有消息。
    • 在主题上使用通配符,例如主题路径中的星号(a/b/*)。
  • 使用主题例外,可以排除用感叹号(!)指定的某些订阅。

您可以使用订阅和例外的组合。例如,您可以使用>来包含所有主题,然后使用主题例外来排除您不希望在重放日志中的特定主题,如!a/b/c

solace(configure/message-spool)# replay-log <replay-log-name>
solace(configure/message-spool/replay-log)# topic-filter
solace(...message-spool/replay-log/topic-filter)# create subscription <topic>

其中:

<topic> — 要添加的主题订阅的名称,格式为a/b/c。您还可以配置通配符订阅(>*)和订阅例外(!)以标识要写入重放日志的消息。有关语法的更多细节,请参见Solace消息格式主题。

要从主题过滤器中删除指定的主题订阅,您可以使用no subscription <topic>命令。

在配置了主题过滤器订阅后,使用no shutdown命令启用重放日志的主题过滤,并使用shutdown命令禁用它。

solace(configure/message-spool/replay-log)# topic-filter
solace(...message-spool/replay-log/topic-filter)# no shutdown

禁用或启用重放日志

您可以使用shutdownno shutdown命令分别禁用或启用重放日志。可选地,您可以使用ingressegress作为命令的参数来启用或禁用到重放日志的流量入口或出口流量。

您可以使用以下命令启用到重放日志的流量:

solace(configure/message-spool)# replay-log <replay-log-name>
solace(configure/message-spool/replay-log)# no shutdown

您可以使用以下命令禁用到重放日志的流量:

solace(configure/message-spool)# replay-log <replay-log-name>
solace(configure/message-spool/replay-log)# shutdown

其中:

<replay-log-name> — 消息重放日志的名称。

ingress — 命令适用于启用或禁用到重放日志的新消息存储。如果您禁用到重放日志的入口流量,它会在可重放数据中创建空白,并不推荐使用。

egress — 命令适用于启用或禁用已记录消息到重放端点的传递。如果您禁用从重放日志的出口流量,它将暂停所有正在进行的已记录消息的重放。

full — 命令适用于入口和出口流量。当没有指定参数时,这是默认行为。