跳到主要内容

PubSub+ JCSMP API中的复制最佳实践

本节描述了当您的客户端应用程序将与使用复制功能的 PubSub+ 事件代理一起使用时应考虑的事项,复制功能为 Solace PubSub+ 提供了数据中心冗余和灾难恢复解决方案。

消息传递API版本

强烈建议复制感知型应用程序使用 7.1.2 或更高版本的 PubSub+ JCSMP API。这些版本支持自动处理复制故障转移。当发生复制故障转移时,API 会正确处理任何正在进行的消息或事务。

主机列表

应用程序应配置一个包含两个地址的主机列表,每个站点的启用保证消息的虚拟路由器各一个。这些地址可以是 IP 地址或主机名。

当应用程序尝试连接到备用事件代理时,连接将被事件代理拒绝。在指定的每个主机的重试次数后,API 将尝试连接到主机列表中的另一个主机。通常,对于要与复制一起使用的应用程序,如果一个主机的连接失败,最好立即尝试连接到另一个主机,然后再重试同一个主机。因此,建议将每个主机的重连尝试次数设置为 1。

如果使用主动/主动复制部署,客户端从复制活动消息 VPN 或其配对复制备用消息 VPN 上的端点消费消息,则不应使用主机列表。对于这种部署,每个消费客户端应仅尝试连接到一个主机上的复制活动消息 VPN 或其配对的复制备用消息 VPN。

自动重新连接

当使用 PubSub+ JCSMP API 的自动重新连接功能时,需要注意的是,复制故障转移的持续时间将是几分钟或几小时,因为需要操作员干预才能进行切换。因此,建议将重连尝试次数设置为 -1,这允许客户端应用程序无限期地尝试重新连接。

有关如何处理复制重新连接的示例,请参阅随 PubSub+ JCSMP API 提供的 Replication 示例。

队列网络名称

随着复制功能的发布,API 中已弃用了队列网络名称接口。原因是队列网络名称在不同的虚拟路由器之间会改变,但复制应用程序需要确保在配对的复制站点内队列命名保持一致。

对于 PubSub+ JCSMP API,建议调用 JCSMPFactory.createQueue(String name),而不是 JCSMPFactory.createQueue(String name, String virtualRouterName)。后者是一个已弃用的方法。