${build.shortName} 消息集群允许一组 ${build.shortName} 消息服务器组成一个组以共享消息处理负载。集群中的每个活跃的节点都是一个活跃的 ${build.shortName} 消息服务器用来管理自己的消息并处理自己的连接。
集群是通过每个节点在 ${build.shortName} 配置文件中声明到其它节点的连接而形成的。当节点形成一个到另一个节点的集群连接时,它在内部创建一个自己到其它节点间的核心 AP I连接。这是透明地在后台进行的,您不需要为每个节点明确地声明一个 API。这些集群连接允许消息在集群地不同节点间进行转移以平衡负载。
需要获得与集群相关地完整文档,请访问 Clusters Overview。
本节包含以下功能的配置:
广播组是服务器通过网络广播连接器的方法。一种连接器定义了一个方式,客户端或其他服务器可以使用这个方式连接到服务器。
广播组使用一组连接器,并在网络上广播它们。根据集群所配置使用哪个广播技术,它将使用 UDP 或 JGroups 来广播连接器对信息。
广播组在服务器配置的 messaging-activemq 子系统中定义。每个 ${build.shortName} 消息服务器可以有多个广播组。
广播组定义了连接器信息如何从服务器广播,而发现组定义了接器信息如何从广播端点接收,例如,一个 UDP 多播地址或 JGroup 信道。
发现组维护一个连接器列表,每个项代表了一个不同服务器地广播。当它接收来自特定服务器的广播终端的广播后,更新列表中的该服务器的条目。如果在一定的时间内没有接收到来自特定服务器的广播,则将删除这个服务器在列表中的条目。
将群集连接分组,使消息可以在群集节点间进行负载平衡。集群连接在 ${build.shortName} 服务器配置中使用 cluster-connection
项进行定义。每个 ${build.shortName} 消息服务器可以定义零个或多个集群连接。
在集群中,基于特定组 ID 的消息组可到达任何节点。对于一个节点,确定哪些组 ID 绑定哪个节点上的哪个消费者是很重要的。每个节点负责正确地把消息路由到有消费者需要处理这些组 ID 的节点上,而不管该消息组默认到达的位置。一旦带有特定组 ID 的消息发送到连接到集群中的特定节点的特定消费者,这些消息将不会再发送到其它节点,即使消费者已断开到节点的连接。
这种情况是由组处理器处理的。每个节点都有个组处理器,该组处理器(与其他处理程序一起)负责将消息组路由到正确的节点。
API 的功能是处理来自一个目标的消息,并将其转发到另外一个地址(通常是一个不同的 ${build.shortName} 消息服务器。
源服务器和目标服务器不必处于同一个集群,使用网桥可以可靠地把消息从一个集群发送到另外一个集群(例如,在一个 WAN 中的集群中发送),或在互联网中(网络连接可能并不稳定)发送。
该API具有内置的抗失败功能,果目标服务器连接丢失(例如,网络出现故障),该 API 尝试重试连接到目标,直到目标可以访问到为止。当目标可以被重新访问时,它将恢复正常运行。
网桥是把独立的 ${build.shortName} 消息服务器连接到一起的可靠方法。为了使用核心 api,源和目标服务器都需要是 ${build.shortName} 消息服务器。