为消息驱动的 Bean 配置工作负载均衡

使用部署在 WebSphere® Application Server V 7 和 V 8 集群中并配置为以 IBM® MQ 消息传递提供程序正常方式运行的消息驱动的 Bean 应用程序时,其中一个集群成员将处理大部分消息。 您可以均衡集群成员的工作负载,以便在多个集群成员之间分配消息处理。

IBM WebSphere MQ 7.0 引入了名为 Asynchronous consume的新功能,该功能允许应用程序使用名为 MQCBMQCTL的 API 异步使用来自队列的消息。

在使用 IBM MQ 消息传递提供程序正常方式的 WebSphere Application Server V 7 和 V 8 中运行的消息驱动的 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修订包 6之前,队列管理器将支持第一个集群成员在 JMS 目标上设置其异步使用者。 当 JMS 目标上收到合适的消息时,该集群成员将第一个收到通知。 然后,启动消息驱动 Bean 应用程序的第一个集群成员将处理 JMS 目标上收到的大部分合适消息。

WebSphere Application Server 连接到 IBM WebSphere MQ 7.0.1修订包 6 队列管理器或后续版本时,到达 JMS 目标的消息将更均匀地分发到已在该 JMS 目标上注册的所有异步使用者。 对于在 WebSphere Application Server V 7 和 V 8 集群中部署的消息驱动的 bean 应用程序,这意味着将在集群成员之间更平均地分发消息。