Message Queue 4.1 引入了高可用性代理群集。与仅提供消息传送服务可用性(如果代理出现故障,可使用另一个代理提供消息传送服务)的传统代理群集相比,高可用性代理群集还提供了数据可用性(如果代理出现故障,另一个代理可使用其持久性消息和状态数据接管消息传送)。
Message Queue 4.1 中引入的高可用性实现使用基于 JDBC 的共享数据存储库:群集中的所有代理共享同一个符合 JDBC 的数据库,而不是代理群集中的每个代理都具有其自己的持久性数据存储库。如果特定代理出现故障,群集中的另一个代理将接管故障代理的消息路由选择和传送。在执行此操作时,故障转移代理将使用共享数据存储库中的数据和状态信息。故障代理的消息传送客户端将重新连接到故障转移代理,它可提供不间断的消息传送服务。
Message Queue 4.1 高可用性实现中使用的基于 JDBC 的共享数据存储库本身必须具有高可用性。如果没有高可用性数据库,或者不间断的消息传送对您并不重要,则可以继续使用传统群集,这些群集提供了服务可用性,但不提供数据可用性。
要配置 Message Queue 4.1 高可用性代理群集,请为群集中的每个代理指定以下代理属性:
群集成员属性,它们指定代理位于高可用性代理群集中,并指定群集 ID 以及群集中的代理 ID。
高可用性数据库属性,它们指定持久性数据模型 (JDBC)、数据库供应商名称以及特定于供应商的配置属性。
故障检测和故障转移属性,它们指定如何检测代理故障以及如何使用故障转移代理处理该故障。
要使用高可用性代理群集实现,您必须执行以下操作:
安装高可用数据库。
安装 JDBC 驱动程序 .jar 文件。
为高可用性持久性数据存储库创建数据库模式。
为群集中的每个代理设置高可用性属性。
启动群集中的每个代理。
有关高可用性代理群集的概念性讨论及其与传统群集之间的差异,请参见《Sun Java System Message Queue 4.2 Technical Overview》中的第 4 章 “Broker Clusters”。有关高可用性代理群集的过程和参考信息,请参见《Sun Java System Message Queue 4.2 Administration Guide》中的第 8 章 “Managing Broker Clusters”以及《Sun Java System Message Queue 4.2 Administration Guide》中的“Cluster Configuration Properties”。
如果已在 Message Queue 4.0 中使用高可用性数据库,并且要切换到高可用性代理群集,则可以使用数据库管理器实用程序 (imqdbmgr) 转换为共享持久性数据存储库。另请参见代理群集以了解更多的已知问题和限制。