Sun Java logo     上一页      目录      索引      下一页     

Sun logo
Sun Java System Message Queue 3 2005Q1 技术概述 

第 5 章
代理群集

Message Queue Enterprise Edition 支持使用代理群集:一组协同工作为客户机提供消息传送服务的代理。使用群集,消息服务器可将客户机连接分布在多个代理上,从而调整对消息通信流量的操作。

本章阐述这些代理群集的体系结构和内部功能。涵盖下列主题:

如果您是负责配置和管理代理群集的管理员,或者是需要使用群集来测试消息传送应用程序的开发者,则需要阅读本章的内容。


群集体系结构

图 5-1 显示了 Message Queue 的代理群集体系结构。群集内的每个代理直接与所有其他代理相连。每个客户机(消息生产者或消费者)都有一个本机代理,借助它该客户机可直接进行通信,发送和接收消息,就好像该代理是服务器上的唯一代理。实际上,本机代理与群集中的其他代理协同工作,分担为所有连接的客户机提供传送服务的负载。

可以将群集内的一个代理指定为主代理。主代理维护配置更改记录,其中记录了对群集持久性实体(目标和长期订阅)所做的更改。该记录用于将此类更改信息传播到发生更改时处于脱机状态的代理;有关详细信息,请参见下面的群集同步

图 5-1 群集体系结构

图表显示三个群集代理,其中一个为主代理。图表用文本进行说明。

以下各节阐述如何在群集内进行消息传送以及如何配置和同步代理(即使一个或多个代理处于脱机状态)。

消息传送

在群集配置中,将在群集的所有代理中复制各个目标。每个代理都了解向所有其他代理的目标进行注册的消息消费者。因此,每个代理既可以将消息从其直接连接的消息生产者路由到远程消息消费者,也可以从远程生产者将消息发送到其直接连接的消费者。

对于消息生产者发出的消息,其所有存储和路由、处理所有客户机确认等操作均由该生产者自身的本机代理进行处理。为最大限度降低群集内的消息通信流量,只有在将消息传送给连接到目标代理的消费者时,才会将消息从一个代理发送到另一个代理。在某些情况下(例如,对多个消费者的队列传送),还可以通过指定向本地消费者的传送优先于向远程消费者的传送,来进一步降低通信流量。如果需要在客户机和消息服务器之间安全地传送加密消息,也可以将群集配置为在代理间提供安全的消息传送。


也有某些例外,群集中的目标属性整体应用于群集,而不是应用于单个目标实例。有关特定目标属性的信息,请参见 Message Queue 管理指南。


群集配置

要在启动时在群集代理之间建立连接,必须为每个代理传送所有其他代理(包括主代理,如果有的话)的主机名和端口号。该信息是由一组群集配置属性指定的,对于群集中的所有代理,这些属性应该是统一的。虽然可以为每个代理分别指定配置属性,但这种方法容易出错,并且容易导致群集配置出现不一致的情况。因此,建议您将所有配置属性都放在一个中央群集配置文件中,供每个代理在启动时引用。这样,就可以确保所有代理共享相同的配置信息。

有关群集配置属性的详细信息,请参见 Message Queue 管理指南。


虽然群集配置文件原本是用来配置群集的,但也可以方便地使用它来存储群集中所有代理共享的其他属性。


群集同步

每当更改群集的配置时,都会将有关更改的信息自动传播到群集中的所有代理。此类配置更改包括以下情况:

此类配置更改信息会立即传播到群集中发生更改时处于联机状态的所有代理。不过,发生更改时,处于脱机状态的代理(例如,崩溃的代理)不会收到更改通知。为了给脱机代理提供该信息,Message Queue 维护群集的配置更改记录,其中记录了已创建或销毁的所有持久性实体(目标和长期订阅)。当脱机代理恢复联机状态时(或向群集添加新代理时),它就会查阅此记录以获取有关目标和长期订户的信息,然后与其他代理交换有关当前活动消息消费者的信息。

群集中的某个代理被指定为主代理,该主代理负责维护配置更改记录。因为在没有主代理的情况下其他代理无法完成初始化,所以应始终先启动群集中的主代理。如果主代理处于脱机状态,则将无法在整个群集中传播配置信息,因为其他代理无法访问配置更改记录。在这些情况下,如果尝试创建或销毁目标或长期订阅,或者尝试执行某个相关操作(例如,重新激活长期订阅),将发生异常。(不过,非管理消息传送仍然可以正常进行。)


部署环境

代理群集的使用取决于是将它们部署在开发环境中,还是部署在生产环境中。

开发环境

在开发环境中,群集用于测试,而且可伸缩性和代理恢复不是很重要,因此基本不需要主代理。在测试条件下,通常自动创建目标(请参见自动创建的目标),并且由正在测试的应用程序创建和销毁这些目标的长期订阅。如果没有主代理,Message Queue 不再要求必须运行主代理才能启动其他代理,并允许对目标和长期订阅进行更改,同时可以将更改传播到所有正在运行的代理。(然而,如果代理脱机、随后又恢复,它将不会与脱机期间所作的更改同步。)如果将环境重新配置为使用主代理,Message Queue 将重新强制执行常规要求。

生产环境

在生产环境中,可伸缩性和代理恢复重要,因此必须使用主代理并维护配置更改记录。这样,可以确保如果代理脱机、随后又恢复,它将与脱机期间所作的更改同步。

实际上,最好定期备份配置更改记录,以预防记录意外损坏及主代理故障而造成的损失。Message Queue 提供了用于备份和恢复配置更改记录的命令行选项。如果需要,也可以更改作为主代理的代理。有关详细信息,请参见 Message Queue 管理指南。



上一页      目录      索引      下一页     


文件号码 819-2223。版权所有 2005 Sun Microsystems, Inc.  保留所有权利。