20.11. HornetQ 群集

HornetQ 群集用于创建 HornetQ 服务器组来分享消息处理的负载。群集里每个活动节点都充当独立的 HornetQ 服务器并管理自己的消息和连接。
要组成群集,每个节点(独立的 HornetQ 服务器)都用服务器配置文件(standalone.xmldomain.xml)的配置参数声明到其它节点的群集连接。
在群集里,核心桥(Core Bridge)用来将消息从一个群集桥接/路由到另外一个群集。核心桥从源队列消费消息并转发这些消息至可能位于相同群集或不同群集的目标 HornetQ 服务器(节点)。
当节点和其它节点组成一个群集连接时,它会在内部创建一个核心桥。每个节点都创建一个显性的核心桥,您并不需要声明它。这些群集连接允许消息在平衡消息处理负载的不同群集的节点间传输。
您可以在服务器配置文件(standalone.xmldomain.xml)里配置群集节点。

重要

您可以通过服务器配置文件(standalone.xmldomain.xml)来配置节点并将这个配置复制到其它节点以生成对称型群集。然而,当复制服务器配置文件是您必须小心。您不能复制 HornetQ 数据(如绑定、日志和大型消息目录)。当节点第一次启动时,它会将正确格式化群集所需的唯一标识符存储在日志目录。

20.11.1. 关于服务器发现

服务器使用一个名为“服务器发现(server discovery)”的机制来实现:
  • 转发它们的连接细节到消息客户:消息客户愿意连接群集里的服务器而无需在给定时间点在线和运行的服务器的细节。
  • 连接至其它服务器:群集里的服务器想建立与其它服务器的群集连接而无需群集里所由其它服务器的专有细节。
服务器的信息通过普通的 HornetQ 连接发送给消息客户并通过群集连接发送给其它服务器。
这需要建立初始的连接,它可以通过动态的服务器发现技术如 UDP、JGroups 或者根据连接器列表来建立。