与 IBM MQ 的互操作:关键功能比较
可以使用三种不同的方法在 WebSphere® Application Server 与 IBM MQ 网络之间发送消息。本主题比较每种方法的关键功能。
IBM MQ 消息传递提供程序(没有总线) | 将 IBM MQ 网络作为外部总线(使用 IBM MQ 链路) | 将 IBM MQ 服务器(队列管理器或队列共享组)作为总线成员 |
---|---|---|
![]() |
![]() |
![]() |
连接 |
||
借助 IBM MQ 消息传递提供程序,您可与 IBM MQ V6 或更高版本进行互操作。请参阅以下链接以了解有关您需要将哪些修订包级别用于配置的详细信息:http://www-01.ibm.com/support/docview.wss?uid=swg21498708 | 借助 IBM MQ 链路,您可与任何平台上的任何受支持版本或发行版的 IBM MQ 进行互操作。 | 借助 IBM MQ 服务器,您只能与 IBM MQ for z/OS® V6 或更高版本或者 IBM MQ V7 或更高版本进行互操作。 |
使用 IBM MQ 消息传递提供程序。 | 使用缺省消息传递提供程序。 | 使用缺省消息传递提供程序。 |
不使用服务集成总线。 | 使用服务集成总线。 | 使用服务集成总线。 |
WebSphere Application Server 将 IBM MQ 消息传递提供程序视为 JMS 消息传递提供程序。 IBM MQ 网络将 IBM MQ 消息传递提供程序视为连接至队列管理器或队列共享组的 IBM MQ 客户机。 |
IBM MQ 链路的每一端都以自然形式显示给另一端,所以 IBM MQ 网络作为外部总线显示给服务集成,而服务集成总线作为虚拟队列管理器显示给 IBM MQ 网络。 | IBM MQ 服务器将 IBM MQ 队列管理器或队列共享组视为总线成员,或者视为服务集成总线的消息排队机制。队列被视为总线目标。 IBM MQ 网络将 IBM MQ 服务器视为连接至队列管理器或队列共享组的 IBM MQ 客户机。 |
提供 WebSphere Application Server 应用程序服务器与 IBM MQ 队列管理器或队列共享组之间的多个连接。需要时,建立连接,以允许 WebSphere Application Server 应用程序访问 IBM MQ 队列。 | 在服务集成总线与 IBM MQ 网络(包含一个或多个互连的 IBM MQ 队列管理器或队列共享组)之间提供单个连接。这个单独的连接用于传送服务集成网络与 IBM MQ 网络之间交换的所有消息。链路充当一个漏斗,通过网关消息传递引擎或者队列管理器来传递消息。如果您想要从服务集成网络建立多个链路,那么可以定义多个外部总线来表示 IBM MQ 网络上不同的队列管理器或队列共享组。 | 在服务集成总线中的消息传递引擎与 IBM MQ 队列管理器或队列共享组之间提供多个连接。需要时,建立连接,以允许 WebSphere Application Server 应用程序访问 IBM MQ 队列。可以将连接配置为使用它所属的消息总线的属性,使每个 IBM MQ 服务器都特定于总线。 |
WebSphere Application Server 与 IBM MQ 网络之间的连接可以使用 TCP/IP 通信链路;如果 WebSphere Application Server 与 IBM MQ 队列管理器在同一映像上运行,那么它可以使用直接调用接口(这称为绑定方式)。用于连接的通道是双向 MQI 通道。 | 服务集成总线网络与 IBM MQ 网络之间的连接使用 TCP/IP 通信链路。该连接的发送方通道和接收方通道是消息通道。 | 服务集成总线网络与 IBM MQ 网络之间的连接可以使用 TCP/IP 通信链路;如果 WebSphere Application Server 应用程序服务器与 IBM MQ 队列管理器在同一映像上运行,那么它可以使用直接调用接口(这称为绑定方式)。用于连接的通道是双向 MQI 通道。 |
对于 IBM MQ for z/OS,可以将消息存储在共享队列上。如果队列管理器发生故障,那么还可以从另一个队列管理器中检索消息(因此,不存在单个故障点)。 | 如果通信链路临时发生故障,那么将由 IBM MQ 或服务集成总线存储消息,在通信链路恢复之后传递这些消息。 | 对于 IBM MQ for z/OS,可以将消息存储在共享队列上。如果队列管理器发生故障,那么还可以从另一个队列管理器中检索消息(因此,不存在单个故障点)。 |
应用程序 |
||
不将服务集成总线与 IBM MQ 网络进行集成。在 WebSphere Application Server 中运行的服务集成总线调解无法处理来自 IBM MQ 队列的消息,IBM MQ 应用程序无法使用 IBM MQ 服务器将消息放入服务集成总线队列类型目标,也无法从这些目标获取消息。 | 将服务集成总线通过网关队列管理器与 IBM MQ 网络进行集成。流量可以间接路由到映射的队列。 | 允许关闭集成;消息传递应用程序可以直接将消息放入 IBM MQ 队列,也可以使用来自该队列的消息。 |
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 队列中获取消息。应用程序可以使用消息使用者来接收消息,可以配置消息驱动的 Bean,以便消息一到达 IBM MQ 队列就处理这些消息。 | WebSphere Application Server 应用程序无法从 IBM MQ 队列中接收消息,因为这些队列是外部总线中的目标。要将消息从 IBM MQ 传递到 WebSphere Application Server 应用程序,IBM MQ 应用程序必须将消息发送至 WebSphere Application Server 应用程序所使用的服务集成总线中的适当目标。 | WebSphere Application Server 应用程序可以从 IBM MQ 队列中获取消息。应用程序可以使用消息使用者来接收消息,可以配置消息驱动的 Bean,以便消息一到达 IBM MQ 队列就处理这些消息。此外,在 WebSphere Application Server 中运行的服务集成总线调解可以立即处理到达 IBM MQ 队列的消息。 |
WebSphere Application Server 应用程序可与 IBM MQ 环境中的应用程序采用相同方式将消息发布到 IBM MQ 主题以及预订有关 IBM MQ 主题的消息。 | 可以在 IBM MQ 链路上设置发布/预订网桥,以便 WebSphere Application Server 应用程序和 IBM MQ 应用程序可以发布到或者预订存在于 IBM MQ 环境和 WebSphere Application Server 环境中的所选主题。 | IBM MQ 服务器提供了与用于点到点消息传递的队列的连接。用于发布/预订消息传递的主题无法与 IBM MQ 服务器相关联。 |
消息存储在队列中,而不是存储在消息传递引擎中;一个或多个 WebSphere Application Server 应用程序可以访问消息,即使应用程序在不同服务器上运行也是如此。 | 消息存储在消息传递引擎中。 | 消息存储在队列中,而不是存储在消息传递引擎中;一个或多个 WebSphere Application Server 应用程序可以访问消息,即使应用程序在不同服务器上运行也是如此。 |
消息由使用应用程序从队列中拉取,然后由生成应用程序发布。 | 消息通过链路推送,不管使用者是否就绪。 | 消息由 WebSphere Application Server 使用者从队列中拉取,然后由 WebSphere Application Server 生产者发布。 |
不支持调解。 | 不支持调解。 | 支持用于修改消息内容,或者进行路由和日志记录的不同调解场景。 |
更容易实现最优负载均衡,因为应用程序可以从 IBM MQ 网络中拉取消息。 | 消息从 IBM MQ 网络推送到应用程序,但是在 WebSphere Application Server 中提供了工作负载均衡选项。 | 更容易实现最优负载均衡,因为应用程序可以从 IBM MQ 网络中拉取消息。 |
管理和安全性 |
||
使用管理控制台来配置和管理。 | 使用管理控制台来配置和管理。 | 使用管理控制台来配置和管理。在配置和管理期间,自动发现 IBM MQ 网络中的队列。 |
在 IBM MQ 中执行管理。在 WebSphere Application Server 中,您需要定义 JMS 工件(例如,目标、连接工厂、侦听器端口和激活规范)。 | IBM MQ 和 WebSphere Application Server 的合作管理域:
|
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 应用程序将消息发送至服务集成目标所需要的许可权由 IBM MQ 管理来控制。 |
WebSphere Application Server 应用程序和调解向特定 IBM MQ 队列发送消息以及从此队列接收消息所需要的许可权由服务集成总线管理来控制。 WebSphere Application Server 访问 IBM MQ 队列所需要的许可权(包括对于其应用程序和调解的许可权)由 IBM MQ 管理来控制。 |
对于 WebSphere Application Server V7 和更高版本,已稳定侦听器端口。有关更多信息,请参阅有关固定功能的文章。您应进行规划,以便将 WebSphere MQ 消息驱动的 Bean 部署配置由使用侦听器端口迁移为使用激活规范。有关如何为非 ASF 方式配置激活规范的更多信息,请参阅为非 ASF 方式配置激活规范。但是,仅当您确定此应用程序不必在版本低于 WebSphere Application Server V7 的应用程序服务器上工作时,您才能开始此迁移。例如,如果应用程序服务器集群中某些成员的版本为 V6.1,而某些成员为更高版本,那么仅当您将该集群中的所有应用程序服务器都迁移到此更高版本之后,才能迁移该集群上的应用程序以使用激活规范。