【问题标题】:HornetQ Core API and JMSHornetQ 核心 API 和 JMS
【发布时间】:2011-12-23 21:12:58
【问题描述】:

我有几个关于 HornetQ 的问题:

  1. HornetQ 核心 API 和 JMS API 有什么区别?

  2. 使用其中一种有什么优点或缺点吗?

  3. 如果我使用核心 API 然后我决定 更改我的消息总线(假设是 ActiveMQ)然后我必须 更改我所有的代码?

【问题讨论】:

    标签: message-queue hornetq


    【解决方案1】:
    1. HornetQ Core API 是 HornetQ 的专有 API,而 JMS API 是 Java Community Process 定义的标准 API。

    2. 有一些 JMS API 不支持的功能可通过 core-api 获得:

      • 在一个主题订阅上不可能有多个消费者(例如,如果您想拥有多个消费者以更好地扩展它)

      • 关于如何创建订阅更通用。您只需在地址内创建一个队列。很简单。

      • 我们有一个很好的异步确认 API。如果您使用此功能,则无需阻止。

    JMS 的优势在于可移植性。如果您决定在提供商之间移动,您的代码将保持不变。

    JMS 的缺点是它缺少一些功能并且有点冗长,目前 JMS 2 JSR 正在开发的内容。

    1. 是的,因为正如我在这里所说的,Hornetq-core api 是一个专有 API,因此它只能在 HornetQ 上工作。与某些消息系统具有专有 API 的方式相同。

    如果您封装您的消息传递访问,您可以最大限度地减少这种情况,尽管您可以使用标准 OO 技术替换系统上的单个类。

    【讨论】:

    • 请不要忘记接受答案,除非您还有其他问题:)
    • 感谢您的回答,读完之后我还有一个问题,我们可以在队列中设置消费者或消息发送者,其中有些使用 Core API,有些使用 JMS 吗?
    • 是的.. 这应该不是问题。顺便说一句:您应该接受正确的答案..不要投票。
    • 我知道,我投了赞成票,我在等你回答我的最后一个问题!!还是谢谢
    • 只是在混合核心和 JMS 时出现问题。假设您使用 TextMessage 生成,那么您必须在核心中实现正确的读取,因为 TextMessage 会将字节添加到 CoreMessage。如果您总是使用 BytesMessage,那将不是问题
    猜你喜欢
    • 2012-05-30
    • 2011-06-02
    • 2012-10-29
    • 2012-12-15
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    相关资源
    最近更新 更多