15.6. 在多站点、容错消息传递系统中配置客户端
内部客户端应用程序是在与代理服务器位于同一数据中心的计算机上运行。下图显示了此拓扑。
图 15.6. 多站点容错消息传递系统中的内部客户端
外部客户端应用程序是在代理数据中心外部的计算机上运行。下图显示了此拓扑。
图 15.7. 多站点、容错消息传递系统中的外部客户端
以下子部分描述了在数据中心中断时配置内部和外部客户端应用程序以在另一个数据中心中连接到备份代理的示例。
15.6.1. 配置内部客户端 复制链接链接已复制到粘贴板!
如果您遇到数据中心中断,内部客户端应用程序将与您的代理一起关闭。要缓解这种情况,您必须在单独的数据中心中有另一个客户端应用程序实例。如果数据中心中断,您可以手动启动备份客户端来连接到已手动启动的备份代理。
要启用备份客户端连接到备份代理,您需要配置与主数据中心中客户端类似的客户端连接。
Example
AMQ 核心协议 JMS 客户端的基本连接配置到 primary-backup 代理组,如下所示。在本例中,host1
和 host2
是 primary 和 backup 代理的主机服务器。
<ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(“(tcp://host1:port,tcp://host2:port)?ha=true&retryInterval=100&retryIntervalMultiplier=1.0&reconnectAttempts=-1”);
<ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(“(tcp://host1:port,tcp://host2:port)?ha=true&retryInterval=100&retryIntervalMultiplier=1.0&reconnectAttempts=-1”);
要在数据中心中断时将备份客户端配置为连接到备份代理,请使用类似的连接配置,但只指定备份代理服务器的主机名。在本例中,备份代理服务器是 host3
。
<ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(“(tcp://host3:port)?ha=true&retryInterval=100&retryIntervalMultiplier=1.0&reconnectAttempts=-1”);
<ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(“(tcp://host3:port)?ha=true&retryInterval=100&retryIntervalMultiplier=1.0&reconnectAttempts=-1”);
其他资源
- 有关配置代理网络连接的更多信息,请参阅 第 2 章 在网络连接中配置接收器和连接器。
15.6.2. 配置外部客户端 复制链接链接已复制到粘贴板!
要让外部代理客户端在数据中心中断时继续生成或消耗消息传递数据,您必须将客户端配置为切换到另一个数据中心的代理。如果是多站点容错系统,您可以将客户端配置为故障转移到您在停机时手动启动的备份代理。
例子
以下是在 primary-backup 组不可用的情况下,将 AMQ 核心协议 JMS 和红帽构建的 Apache Qpid JMS 客户端故障转移到备份代理的示例。在这些示例中,host1
和 host2
是 primary 和 backup 代理的主机服务器,而 host3
则是您在数据中心停机时手动启动的备份代理的主机服务器。
要配置 AMQ 核心协议 JMS 客户端,请将备份代理包含在客户端尝试连接的代理列表中。
<ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(“(tcp://host1:port,tcp://host2:port,tcp://host3:port)?ha=true&retryInterval=100&retryIntervalMultiplier=1.0&reconnectAttempts=-1”);
<ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(“(tcp://host1:port,tcp://host2:port,tcp://host3:port)?ha=true&retryInterval=100&retryIntervalMultiplier=1.0&reconnectAttempts=-1”);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要配置红帽构建的 Apache Qpid JMS 客户端,请将备份代理包含在您在客户端上配置的故障转移 URI 中。
failover:(amqp://host1:port,amqp://host2:port,amqp://host3:port)?jms.clientID=myclient&failover.maxReconnectAttempts=20
failover:(amqp://host1:port,amqp://host2:port,amqp://host3:port)?jms.clientID=myclient&failover.maxReconnectAttempts=20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
有关配置故障切换的更多信息:
- AMQ 核心协议 JMS 客户端,请参阅 Failover 选项。
- 红帽构建的 Apache Qpid JMS 客户端,请参阅 故障切换选项。
- 其他支持的客户端,请参阅产品文档 Red Hat AMQ Clients 中的特定于客户端的文档。