使用 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 MQWebSphere Application Server 消息传递引擎称为网关消息传递引擎。IBM MQ 链路连接至的 IBM MQ 队列管理器或者队列共享组称为网关队列管理器。

图 1. 单个应用程序服务器连接至一个网关队列管理器
WebSphere Application Server 应用程序服务器包含一个网关消息传递引擎,该消息传递引擎连接至网关队列管理器。

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 中的单个网关队列管理器相连接。网关消息传递引擎和网关队列管理器将消息(可以是点到点消息或者发布/预订消息)分发到它们各自网络中的相应应用程序服务器和队列管理器。

图 2. 多个应用程序服务器连接至多个队列管理器
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 中的网关队列管理器失败,那么会在该网关队列管理器运行时发送已经在其他队列管理器中排队的消息。

您可以通过在 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 高可用性集群的一部分。

图 3. 连接至多个队列管理器的多个应用程序服务器的高可用性
WebSphere Application Server 单元中包含多个应用程序服务器,这些应用程序服务器连接至网关消息传递引擎所在单元中的应用程序服务器。网关消息传递引擎所在的应用程序服务器与故障转移网关消息传递引擎所在的另一个应用程序服务器都是 WebSphere Application Server 集群的一部分。IBM MQ 网络中包含一个高可用性集群,该集群具有多个网关队列管理器。如果网关消息传递引擎发生故障,那么 WebSphere Application Server 单元中的应用程序服务器将连接至故障转移网关消息传递引擎,而该网关消息传递引擎与原始网关消息传递引擎以相同方式链接至网关队列管理器。

要让 WebSphere Application ServerIBM MQ 在此网络拓扑中互操作,必须添加对于 IP 地址更改的支持。IBM MQ 网关队列管理器使用一个 IP 地址来访问 WebSphere Application Server 网关消息传递引擎,而 WebSphere Application Server 网关消息传递引擎使用一个 IP 地址来访问 IBM MQ 网关队列管理器。在高可用性配置中,如果网关消息传递引擎故障转移到另一个应用程序服务器,或者网关队列管理器失败并且已被故障转移网关队列管理器替代,那么与失败组件的原始 IP 地址的连接会中断。您必须确保这两个产品都能够在新位置恢复它们与该组件的连接。

要确保恢复与故障转移 WebSphere Application Server 网关消息传递引擎的连接,请选择下列其中一个选项:
  1. 如果您正在使用版本低于 V7.0.1 的 IBM MQ,请安装 SupportPac MR01 for IBM MQ。此 SupportPac 为 IBM MQ 队列管理器提供了备用 IP 地址和端口的列表,以便在消息传递引擎故障转移到另一个 IP 地址和端口之后,队列管理器可与 WebSphere Application Server 网关消息传递引擎相连。在 WebSphere Application Server 中,必须为网关消息传递引擎设置“N 中取 1”的高可用性策略。有关 IBM MQ MR01 SupportPac 的更多信息,请参阅 MR01:在 IBM MQ 与服务集成总线之间创建 HA 链路
  2. 如果您正在使用 IBM MQ V7.0.1,请使用连接名称 (CONNAME) 来指定连接列表。尽管通常只需要一个机器名称,但是您可以提供多个机器名称以配置具有相同属性的多个连接。按连接列表中指定的连接顺序来尝试进行这些连接,直到成功建立连接为止。如果未成功建立任何连接,那么通道将启动重试处理。使用此选项时,请将 CONNAME 指定为所声明传输类型的以逗号分隔的机器名称列表,并确保所有 WebSphere Application Server 集群成员都直接列示在 CONNAME 中。有关使用 CONNAME 的更多信息,请参阅 IBM MQ 信息中心。
    注: IBM MQ V7.0.1 不需要 SupportPac MR01,因为此发行版包括与更低发行版的 SupportPac MR01 所提供的功能等价的功能。由于支持 IBM MQ V7.0.1 中的多实例队列管理器,因此能够使用 CONNAME 来指定连接列表,但是,还可以将它用作另一个选项来确保恢复与故障转移 WebSphere Application Server 网关消息传递引擎的连接。
  3. 使用外部高可用性框架(例如,HACMP)来管理其中包含网关消息传递引擎的资源组。当您使用外部高可用性框架时,IP 地址可以故障转移到以下机器:在运行已将网关消息传递引擎移至的应用程序服务器的机器。请遵循以下过程来正确处理 IP 地址:
    • 为消息传递引擎设置“无操作”高可用性策略,以便外部高可用性框架可控制消息传递引擎的运行时间和运行位置。
    • 在由外部高可用性框架管理的资源组中为消息传递引擎及其 IP 地址创建资源。
    • 考虑将消息传递引擎数据存储器与表示该消息传递引擎的资源放在同一资源组中。
要确保恢复与故障转移 IBM MQ 网关队列管理器的连接,请选择下列其中一个选项:
  1. IBM MQ 中设置多实例队列管理器,如 IBM MQ 信息中心中所述。在 IBM MQ 链路发送方通道的定义中,选择多连接名称列表,然后指定活动队列管理器和备用队列管理器所在服务器的主机名(或 IP 地址)和端口。如果活动网关队列管理器失败,那么服务集成总线将使用此信息来重新连接至备用网关队列管理器。
  2. 使用外部高可用性框架(例如,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 网关队列管理器。

图 4. 位于不同地理位置的应用程序服务器连接至同一 IBM MQ 网络
两个 WebSphere Application Server 单元中都包含多个应用程序服务器,这些应用程序服务器连接至其中包含网关消息传递引擎的单元中的应用程序服务器。WebSphere Application Server 单元中的网关消息传递引擎链接至 IBM MQ 网络中不同的网关队列管理器。网关队列管理器连接至 IBM MQ 网络中的同一组更多队列管理器。

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


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cmm_mq_top03
文件名:cmm_mq_top03.html