对于可以用来在 WebSphere® Application Server 与 IBM MQ 网络之间发送消息的三种不同方法进行了高级比较,表明每种方法的相对优点和缺点。
IBM MQ 作为外部消息传递提供程序
IBM MQ 消息传递提供程序不使用服务集成。它提供从 WebSphere Application Server 到 IBM MQ 的 JMS 消息传递访问。IBM MQ 消息传递提供程序使用 IBM MQ 环境中的现有功能,使点到点消息传递和发布/预订消息传递可用于 WebSphere Application Server 应用程序。WebSphere Application Server 应用程序可以与 IBM MQ 队列和主题交互,以采用与 IBM MQ 环境中任何 JMS 应用程序相同的方式来发送、接收、发布和预订消息。
使用 IBM MQ 作为外部消息传递提供程序时,将要求进行更多 IBM MQ 管理工作,而进行较少的 WebSphere Application Server 管理工作。
表 1. 将 IBM MQ 作为外部消息传递提供程序的优点和缺点. 此表的第一列显示了使用 IBM MQ 作为外部消息传递提供程序的优点,第二列显示了使用 IBM MQ 作为外部消息传递提供程序的缺点。优点 |
缺点 |
- 您不必配置服务集成总线或消息传递引擎。
- 您可以直接连接至 IBM MQ 队列管理器。
- 您管理单个 JMS 消息传递提供程序,而不是两个。
- 可以客户机方式或绑定方式连接到队列管理器。
- 可以使用点到点消息传递和发布/预订消息传递
|
- WebSphere Application Server 与 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 队列(在服务集成总线中定义为目标),并允许
IBM MQ 应用程序将点到点消息发送至服务集成总线(在 IBM MQ
中定义为远程队列)中的目标。您还可以设置发布/预订网桥,以便
WebSphere Application Server 应用程序可以预订 IBM MQ
应用程序所发布的消息,并且 IBM MQ 应用程序可以预订 WebSphere Application Server
应用程序所发布的消息。此链接确保可在 WebSphere Application Server 使用的格式以及
IBM MQ 使用的格式之间转换消息。
使用 IBM MQ 网络作为外部总线(使用 IBM MQ 链路)时,需要进行更多 WebSphere Application Server 管理工作,而进行较少 IBM MQ 管理工作。
表 2. 将 IBM MQ 网络作为外部总线(使用 IBM MQ 链路)的优点和缺点. 此表的第一列显示了使用 IBM MQ 网络作为外部总线(使用 IBM MQ 链路)的优点,第二列显示了使用 IBM MQ 网络作为外部总线(使用 IBM MQ 链路)的缺点。优点 |
缺点 |
- 网关 IBM MQ 队列管理器上不需要 IBM MQ 客户机设施。
- 链路的每一端都以自然形式对另一端显示;IBM MQ 对于服务集成显示为(外部)总线,而服务集成对于 IBM MQ 显示为(虚拟)队列管理器。
- 与 IBM MQ 服务器或者作为外部 JMS 消息传递提供程序直接连接到 IBM MQ 相比,使用链路时的性能可能更高。
- 创建从一个节点到另一个节点的受管连接,但不从单元中的每个应用程序服务器创建。
- 不必定义服务集成总线的各个 IBM MQ 队列。
- 提供出色的安全支持。例如,可以控制允许哪些用户将消息放入队列。
- WebSphere Application Server 和 IBM MQ 可以存在于不同的主机上。
- WebSphere Application Server 与 IBM MQ 之间的交互是无缝交互。
- 您可以配置发布/预订网桥,WebSphere Application Server 应用程序可以通过此网桥预订 IBM MQ 应用程序发布的消息,而 IBM MQ 应用程序可以预订 WebSphere Application Server 应用程序发布的消息。
|
- 您必须配置服务集成总线和消息传递引擎。
- 无法以绑定方式连接到队列管理器。
- 更不容易实现最佳负载均衡,因为消息必须从链路的任一端“推送”。
- 无法使用服务集成调解来修改消息、传递消息或者进行日志记录。
|
将 IBM MQ 服务器(队列管理器或队列共享组)作为总线成员
IBM MQ 服务器提供服务集成总线与 IBM MQ
队列管理器或(对于 IBM MQ for z/OS®)队列共享组上的队列之间的直接客户机连接。 要与 WebSphere Application Server V7 或更高版本进行互操作,WebSphere MQ 的版本必须为
WebSphere MQ for z/OS V6 或更高版本,或者
WebSphere MQ(分布式平台)V7 或更高版本。 IBM MQ 服务器支持 IBM MQ for z/OS 网络提供的高可用性和最佳负载均衡特征。IBM MQ 服务器定义连接以及用于连接的服务质量属性,并确保在 WebSphere Application Server 使用的格式与 IBM MQ 使用的格式之间转换消息。IBM MQ 服务器仅表示点到点消息传递的队列;它不表示发布/预订消息传递的主题。
使用 IBM MQ 服务器(队列管理器或队列共享组)作为总线成员时,需要进行更多 WebSphere Application Server 管理工作,而进行较少的 IBM MQ 管理工作。
表 3. 将 IBM MQ 服务器(队列管理器或队列共享组)作为总线成员的优点和缺点. 此表的第一列显示了使用 IBM MQ 服务器(队列管理器或队列共享组)作为总线成员的优点,第二列显示了使用 IBM MQ 服务器(队列管理器或队列共享组)作为总线成员的缺点。优点 |
缺点 |
- WebSphere Application Server 和 IBM MQ 可以存在于不同的主机上。
- 连接的每一端都以自然形式对另一端显示;IBM MQ 队列管理器对于服务集成显示为(外部)总线,而服务集成对于 IBM MQ 显示为客户机。
- 可以关闭应用程序的集成;服务集成应用程序可以直接使用来自 IBM MQ 网络的消息。
- 可以客户机方式或绑定方式连接到队列管理器。
- 可以使用调解来修改消息、传递消息或者进行日志记录。
- 提供出色的安全支持。例如,可以控制允许哪些用户将消息放入队列。
- 可以从 IBM MQ 队列获取 (GET) 消息。
- WebSphere Application Server 与 IBM MQ 之间的交互是无缝交互。
- 会自动发现 IBM MQ 网络上的队列。
|
- 您必须配置服务集成总线和消息传递引擎。
- 必须可以从总线中的所有消息传递引擎访问队列管理器和队列共享组。
- 无法使用 IBM MQ 服务器对 IBM MQ 发布/预订消息。
- IBM MQ for z/OS V6 或更高版本或者 IBM MQ(分布式平台)V7 或更高版本是必备软件。
- 如果您正在与 IBM MQ for z/OS 使用不同的节点,那么根据节点数和 IBM MQ for z/OS 的版本,您可能需要 z/OS 上安装了“客户机连接”功能部件 (CAF)。
- 必须明确定义所有目标。
|