使用 IBM MQ 链路进行互操作的网络拓扑
这些示例说明了从简单到复杂的一系列网络拓扑,这些网络拓扑使 WebSphere® Application Server 能够使用 IBM MQ 链路与 IBM MQ 进行互操作。
为完整起见,本主题描述了各种拓扑,包括集群拓扑和高可用拓扑。请注意,要实现集群和高可用性,需要使用产品的 Network Deployment 版或 z/OS 版。
单个 WebSphere Application Server 应用程序服务器连接至单个 IBM MQ 队列管理器
在此基本方案中,IBM MQ 链路将单个 WebSphere Application Server 应用程序服务器连接至一个 IBM MQ 队列管理器。使用 IBM MQ 链路连接至 IBM MQ 的 WebSphere Application Server 消息传递引擎称为网关消息传递引擎。IBM MQ 链路连接至的 IBM MQ 队列管理器或者队列共享组称为网关队列管理器。

IBM MQ 链路始终使用 TCP/IP 连接,即使 IBM MQ 队列管理器与应用程序服务器正在同一主机上运行也是如此。您不需要为连接指定客户机或绑定传输类型,就像 IBM MQ 作为消息传递提供程序时一样。
IBM MQ 链路由一个或两个消息通道组成,这些消息通道用于将消息发送至 IBM MQ 和/或从 IBM MQ 接收消息。每个消息通道使用一个 TCP/IP 连接。
消息通道支持 WebSphere Application Server 应用程序与 IBM MQ 应用程序之间进行点到点消息传递。您还可以在 IBM MQ 链路上配置一个发布/预订网桥,用于在 WebSphere Application Server 应用程序与 IBM MQ 应用程序之间进行发布/预订消息传递。有关 IBM MQ 链路及其消息通道的更多详细信息,请参阅通过 IBM MQ 链路交换消息。
WebSphere Application Server 单元连接至 IBM MQ 网络
单个 IBM MQ 链路可以将表示多个应用程序服务器的整个 WebSphere Application Server 服务集成总线连接至多个 IBM MQ 队列管理器。两个网络之间交换的消息全部都通过 IBM MQ 链路进行传递,该链路将 WebSphere Application Server 中的单个网关消息传递引擎与 IBM MQ 中的单个网关队列管理器相连接。网关消息传递引擎和网关队列管理器将消息(可以是点到点消息或者发布/预订消息)分发到它们各自网络中的相应应用程序服务器和队列管理器。

- 包含网关消息传递引擎的 WebSphere Application Server 应用程序服务器失败。
- 正在运行 WebSphere Application Server 应用程序服务器的主机失败。
- IBM MQ 网关队列管理器失败。
- 正在运行 IBM MQ 网关队列管理器的主机失败。
- 如果 WebSphere Application Server 中的网关消息传递引擎失败或者不再能够与 IBM MQ 进行通信,那么已经在网关消息传递引擎(此网关消息传递引擎具有存储和转发能力)中排队的消息会存储在该网关消息传递引擎中,然后在复原互操作时发送这些消息。
- 如果 WebSphere Application Server 中的网关消息传递引擎失败,那么已经在其他应用程序服务器的消息传递引擎中排队的消息会存储在这些消息传递引擎中,然后在该网关消息传递引擎运行时发送这些消息。
- 如果 IBM MQ 中的网关队列管理器失败或者不再能够与 WebSphere Application Server 进行通信,那么会在复原互操作时发送已经在该网关队列管理器中排队的消息。
- 如果 IBM MQ 中的网关队列管理器失败,那么会在该网关队列管理器运行时发送已经在其他队列管理器中排队的消息。
您可以通过在 WebSphere Application Server 和 IBM MQ 中设置高可用性框架来提高此拓扑的健壮性和引入更高的可用性。
连接至 IBM MQ 网络的 WebSphere Application Server 单元的高可用性
WebSphere Application Server 高可用性框架消除了单点故障,并为 WebSphere Application Server 内运行的应用程序和进程提供对等故障转移。此框架还允许将 WebSphere Application Server 集成到使用其他高可用性框架(例如,高可用性集群多重处理 (HACMP™))的环境中,以便管理非 WebSphere Application Server 资源。
可以将 WebSphere Application Server 应用程序服务器和 IBM MQ 队列管理器都安排在集群中,以便在其中一个失败时,另一个可以继续运行。在此处所显示的网络拓扑中,服务集成总线所在的 WebSphere Application Server 单元中现在包括一个 WebSphere Application Server 集群,该集群为网关消息传递引擎提供了备份。如果网关消息传递引擎失败,那么它可以在集群中的另一个应用程序服务器中重新启动,然后它可以重新启动与网关队列管理器建立的 IBM MQ 链路。类似地,网关队列管理器也是 IBM MQ 高可用性集群的一部分。

要让 WebSphere Application Server 和 IBM MQ 在此网络拓扑中互操作,必须添加对于 IP 地址更改的支持。IBM MQ 网关队列管理器使用一个 IP 地址来访问 WebSphere Application Server 网关消息传递引擎,而 WebSphere Application Server 网关消息传递引擎使用一个 IP 地址来访问 IBM MQ 网关队列管理器。在高可用性配置中,如果网关消息传递引擎故障转移到另一个应用程序服务器,或者网关队列管理器失败并且已被故障转移网关队列管理器替代,那么与失败组件的原始 IP 地址的连接会中断。您必须确保这两个产品都能够在新位置恢复它们与该组件的连接。
- 在 IBM MQ 中设置多实例队列管理器,如 IBM MQ 信息中心中所述。在 IBM MQ 链路发送方通道的定义中,选择多连接名称列表,然后指定活动队列管理器和备用队列管理器所在服务器的主机名(或 IP 地址)和端口。如果活动网关队列管理器失败,那么服务集成总线将使用此信息来重新连接至备用网关队列管理器。
- 使用外部高可用性框架(例如,HACMP)来创建支持 IP 地址接管的 IBM MQ 高可用性集群。IP 地址接管可确保网关队列管理器在其新位置对于服务集成总线显示为同一队列管理器。
网关队列管理器和网关消息传递引擎将存储状态信息,它们使用此信息来防止在发生故障之后重新开始通信时丢失消息或者产生重复消息。这意味着网关消息传递引擎必须始终重新连接至同一网关队列管理器。
如果您使用 IBM MQ for z/OS® 队列共享组,那么可以配置 IBM MQ 链路以使用共享通道来进行连接。与其他 IBM MQ 平台上可用的高可用性集群选项相比,共享通道提供了更高级的可用性,这是因为共享通道可以重新连接至同一队列共享组中的其他队列管理器。在同一队列共享组中进行重新连接,通常比等待在同一位置或另一位置重新启动同一队列管理器更快。
尽管本节中所描述的网络拓扑可以提供可用性和可伸缩性,但是不同队列管理器与它们所连接至的 WebSphere Application Server 应用程序服务器上的工作负载之间的关系较复杂。要获取专家建议,请联系 IBM® 代表。
连接至 IBM MQ 网络的多个 WebSphere Application Server 单元
在此示例方案中,一家企业有两个位于不同地理位置的 WebSphere Application Server 单元,希望将这两个单元连接至企业范围内的同一 IBM MQ 网络。每个服务集成总线都有它自己的网关消息传递引擎,该网关消息传递引擎使用 IBM MQ 链路连接至附近的 IBM MQ 网关队列管理器。

采用此网络拓扑时,在任一 WebSphere Application Server 单元中运行的 WebSphere Application Server 应用程序可与 IBM MQ 应用程序交换点到点消息或者(借助发布/预订网桥)发布/预订消息。它们还可以使用企业范围内的 IBM MQ 网络设施与在其他 WebSphere Application Server 单元中运行的 WebSphere Application Server 应用程序交换消息。与前一方案一样,该企业可以在 WebSphere Application Server 和 IBM MQ 中使用高可用性框架来提供更高的可用性和可伸缩性。