配置消息重放
要开始使用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
禁用或启用重放日志
您可以使用shutdown
或no shutdown
命令分别禁用或启用重放日志。可选地,您可以使用ingress
和egress
作为命令的参数来启用或禁用到重放日志的流量入口或出口流量。
您可以使用以下命令启用到重放日志的流量:
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
— 命令适用于入口和出口流量。当没有指定参数时,这是默认行为。