使用 WebSphere Application Server 集群时消息驱动的 Bean 的工作负载均衡
使用部署在 WebSphere® Application Server 7.0 和 8.0 集群中并配置为以 IBM® WebSphere MQ 消息传递提供程序正常方式运行的消息驱动的 bean 应用程序时,其中一个集群成员将处理大部分消息。 您可以均衡集群成员的工作负载,以便在多个集群成员之间分配消息处理。
IBM WebSphere MQ 7.0 引入了名为 Asynchronous consume的新功能,该功能允许应用程序使用名为 MQCB 和 MQCTL的 API 异步使用来自队列的消息。
在 WebSphere Application Server 7.0 和 8.0中运行的使用 IBM WebSphere MQ 消息传递提供程序正常方式的消息驱动的 bean 应用程序将自动使用此功能。 当应用程序启动时,它们将在已配置为通过调用 MQCB进行监视的 JMS 目标上设置异步使用者。 然后,将调用 MQCTL API 以指示应用程序已准备好从 JMS 目标接收消息。
将消息驱动的 bean 应用程序部署到 WebSphere Application Server 集群时,每个集群成员都将为消息驱动的 bean 正在监视的 JMS 目标设置异步使用者以获取消息。 然后,主管 JMS 目标的 IBM WebSphere MQ 7.0 队列管理器负责在 JMS 目标上存在适合其处理的消息时通知集群成员。
在 IBM WebSphere MQ 7.0.1 Fix Pack 6之前,队列管理器将支持第一个集群成员在 JMS 目标上设置其异步使用者。 当适当的消息到达 JMS 目标时,将首先通知此集群成员。 随后,启动消息驱动的 bean 应用程序的第一个集群成员将处理到达 JMS 目标的大多数合适的消息。
当 WebSphere Application Server 连接到 IBM WebSphere MQ 7.0.1 Fix Pack 6 或更高版本的队列管理器时,到达 JMS 目标的消息将更均匀地分发到已在该 JMS 目标上注册的所有异步使用者。 对于部署在 WebSphere Application Server 7.0 和 IBM MQ 8.0 集群中的消息驱动的 Bean 应用程序,这意味着消息将更均匀地分布在集群成员之间。