跳到主要内容

监控复制

本节提供了您可以使用的 CLI 命令来查看复制统计信息,并提供了一些重要的监控因素,以确保复制正常运行并提供预期的服务。

显示系统级复制信息

要显示事件代理的系统级复制配置信息和统计数据,请输入以下用户执行命令:

solace> show replication [stats]

其中:

replication 指定复制配置信息。

stats 指定复制统计信息。

大多数统计数据都是不言自明的 - 它们显示了多少消息被排队发送到复制伙伴上处于备用状态的消息 VPN,以及从处于活动状态的复制伙伴上的消息 VPN 接收了多少消息。

然而,“Transitions to Ineligible” 统计和 “Sync Messages Queued To Standby As Async” 需要进一步讨论,因为它们可能表明需要系统管理员解决的网络连接问题或广域网带宽问题。

如果复制站点之间的广域网链路失败,或者如果广域网链路无法跟上需要复制到处于备用状态的消息 VPN 的消息的入口速率,那么系统会将同步主题的同步复制转换为异步复制,以防止在广域网链路故障或中断期间发布应用程序无法发布。一旦广域网链路恢复,系统会自动恢复同步复制,并在事件代理处于此状态时,对复制伙伴上处于备用复制状态的消息 VPN 排队的复制消息进行处理。

显示消息VPN级复制信息

要显示消息 VPN 级复制配置信息和统计数据,请输入以下用户执行命令:

solace> show message-vpn <vpn-name> replication [stats]

其中:

replication 指定复制配置信息。

stats 指定复制统计信息。

消息 VPN 状态和统计数据与全局状态和统计数据大致相同,只是这些值专门适用于给定的消息 VPN。

请注意,在上述示例中,消息 VPN 具有活动复制状态,因此本地桥接状态是 "n/a"。本地桥接只在复制备用状态时使用。在复制活动状态下,"远程桥接" 和 "队列" 部分是感兴趣的。当活动时,预计远程桥接将连接并绑定到活动消息 VPN 的复制队列。

监控复制事务

  • 要显示正在进行的复制事务,请输入以下用户执行命令:
solace> show transaction replicated
  • 要显示正在进行的复制事务的详细信息,请输入以下用户执行命令:
solace> show transaction replicated detail
  • 要显示特定事务的详细信息,请输入以下用户执行命令:
solace> show transaction xid <xid> detail

其中:

xid 指定要显示的事务的 XID。

  • 对于 XA 事务,XID 将与客户端启动 XA 事务时使用的值匹配(通常由应用程序事务管理器执行)。本地事务没有与之相关的 XID,因此系统为事务自动创建一个内部 XID。
  • 并非所有事务状态都在活动和备用站点上镜像。如果它们处于准备状态并且使用同步复制,XA 和本地事务将只能在备用站点上显示。
  • 在事务的正常处理过程中,事务从状态到状态的进展通常很快,因此很难显示处于特定状态的事务。例如,本地事务永远不会在活动站点上处于可显示状态。当复制服务降级并且事务超时时(例如,从同步切换到异步),处于各种状态的事务更有可能被显示。

监控降级服务

事件代理实现了一个 WARN 级别的事件日志 VPN_REPLICATION_SERVICE_DEGRADED,以指示何时复制服务已降级。这是复制部署中最重要的监控事项之一,因此建议认真监控此事件,并尽快采取行动以纠正此问题。

降级的复制服务表明:

  1. 同步复制回退到消息和事务的异步复制服务。这意味着由于复制故障转移,可能会丢失消息。
  2. 如果启用了 reject‑msg-when-sync-ineligible 选项(参见配置拒绝消息当同步不合格),则使用同步复制模式的消息和事务将被拒绝。
  3. 消息没有及时复制到处于备用复制状态的消息 VPN。这可能意味着消息正在积累在复制队列上,从而消耗消息池资源。因此,当复制服务降级时,应监控复制队列的消息池使用情况。

解决降级服务锚点

要清除降级服务状态,首先要做的是验证复制站点之间是否有适当的链路连接(即,检查链路是否处于 UP 状态,并且链路表现符合预期)。一旦完成此操作,如果复制队列在服务降级时继续增长,必须采取行动以恢复复制的正常功能。可能采取的行动包括:

  • 限制消息复制速率
  • 临时断开慢速订阅者连接
  • 重新启动复制
  • 清除超额配额端点

限制消息复制速率锚点

解决降级服务的最明显解决方案是限制消息复制的速率,以便随着时间的推移减少待复制的消息数量。如果可容忍的恢复窗口足够长,可以利用应用程序使用模式中的慢速周期(例如,晚上、周末和/或维护窗口)。

临时断开慢速订阅者连接锚点

如果复制队列的传输模式不从输入中传输,复制消息的传输速率会受到其他也从持久存储接收消息但消费速度慢的消费者的影響。如果这些其他慢速消费客户端(即,慢速订阅者)被临时断开连接,复制速率可能会增加,以便最终赶上。

断开慢速订阅者最简单的方法是关闭这些端点的出站,禁止客户端绑定到队列。要关闭端点出站,请使用以下 CONFIG 命令:

solace(configure/message-spool/queue)# shutdown egress

这样做可能会导致更多消息在队列上积累,从而加剧这些客户端的问题。然而,一旦复制队列赶上,只要广域网带宽和链路的消息池窗口大小足够,它应该能够继续从输入流中传输。因此,启用慢速消费端点的出站不应该是导致复制队列问题再次发生的因素。所以如果复制的正常运行优先于向慢速订阅者传递消息,这可能是一个合理的行动。

重新启动复制锚点

如果无法将消息速率降低到允许复制队列上的消息以比新消息入队更快的速率被消费,应重新启动复制。这意味着复制将被中断,导致一段时间内没有消息被复制。虽然这可能看起来激进,但此时复制服务可能已经降级,意味着复制的好处已经因不受控制的故障转移而丧失。

如果您决定重新启动复制,请执行以下操作:

  1. 关闭复制(参见启用复制)。
  2. 监控 show message-spool 用户执行命令输出中的 Number of delete-in-progress 值。等待此值变为 0。
  3. 启用复制(参见启用复制)。

清除超额配额端点锚点

如果您允许客户端从具有备用复制状态的消息 VPN 上的端点消费消息(即,允许活动-活动消费者),如果这些端点之一的消息没有被客户端充分消费,并且端点超出配额,可能会发生降级服务。

这可能发生在以下情况:

  • 消费客户端未连接,因此没有排空端点。
  • 消费消息的速度比同一端点上的消息 VPN 的消费客户端慢,该消息 VPN 具有活动复制状态。在这种情况下,复制备用消息 VPN 上的端点的消息池大小会随着时间的推移而增长。