JMS 消息系统的设计与应用
1. JMS 跨协议桥接与互操作性
在使用 JMS 进行消息传递时,跨协议桥接是一个重要的话题。当使用桥接连接到其他协议时,端到端的服务质量可能无法得到保证。例如,在图 10 - 2 所示的场景中,HTTP 发送可能成功,但 acknowledge() 操作可能失败。
JMS 本身并不提供 JMS 供应商与其他非 JMS 供应商之间的互操作性。不同供应商的 JMS 客户端和服务器不能直接通信,这是因为消息供应商的架构差异很大。为了实现不同语言和平台之间的消息传递,需要一个消息桥来将 JMS 消息转换为其他消息系统(如 MSMQ)能够理解的消息。
以下是一些支持 JMS 和原生 API 的消息供应商:
| 供应商 | 特点 |
| ---- | ---- |
| IBM 的 WebSphere MQ | 支持 JMS 和原生 API,允许不同语言和平台之间的互操作性 |
| 开源的 ActiveMQ JMS 提供商 | 支持多种语言和平台,如 C、C++、C#、Perl、Ruby 和 Smalltalk 等 |
在选择 JMS 供应商时,需要考虑互操作性需求。一些 JMS 供应商(包括 Java EE 应用服务器)只能发送和接收 JMS 消息,对于需要实现 Java 和 C# 互操作性的场景,这些供应商可能无法满足需求。此外,大多数提供内置消息桥的供应商对可发送的 JMS 消息类型有限制。例如,使用 JMS ObjectMessage 会将生产者和消费者限制在 Java 平台,而使用 MapMessage
超级会员免费看
订阅专栏 解锁全文
1020

被折叠的 条评论
为什么被折叠?



