【问题标题】:WIthout using the JMS Wrapper how to emulate JMS topic w/ HornetQ core API不使用 JMS Wrapper 如何使用 HornetQ 核心 API 模拟 JMS 主题
【发布时间】:2011-06-02 11:19:55
【问题描述】:

我想使用 HornetQ 核心 API 翻译 JMS 主题的概念。

我从简要检查中看到的问题是,主类 JMSServerManagerImpl(来自 hornetq-jms.jar)使用 jndi 来协调它需要的各种协作者。我想避免使用 jndi,因为它不是自包含的,并且是一个全局共享对象,这在 osgi 环境中尤其是一个问题。一种替代方法是从 JMSServerManagerImpl 开始复制,但这似乎需要做很多工作。

我宁愿确认我模拟 hornetq 如何支持主题的方法是解决此问题的正确方法。如果有人有足够的知识,也许他们可以评论我认为使用核心 api 编写我自己的主题模拟的方法。

假设

  • 如果消息消费者失败(通过回滚),容器将尝试将消息传递给同一主题的另一个不同消费者。

仿真

  1. 包装为主题添加的每条消息。
  2. 发件人发送带有确认处理程序集的消息。
  3. (1) 的包装器将在真正的侦听器返回后回滚。
  4. 然后发件人确认送达

我假设在 4 之后,味精在被提供给所有味精接收者后被传递。如果我犯了任何错误或我的假设是错误的,请发表评论。我不确定这种关于确认如何工作的假设是否正确,所以任何指针都会很好。

【问题讨论】:

    标签: jboss jms hornetq


    【解决方案1】:

    如果您想弄清楚如何使用核心 API 向多个消费者发送消息;这是我推荐的

    1. 创建队列 1 并绑定到地址 1
    2. 创建队列 2 并绑定到地址 1
    3. 创建队列 N 并绑定到地址 1

    4. 在地址 1 上发送消息

    5. 启动 N 个消费者,每个消费者在队列 1-N 上侦听

    这样它基本上就像一个主题一样工作。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 其实这不是正确的答案,下一个创建多个队列的问题才是正确的答案……主题订阅只不过是一个核心队列。
      猜你喜欢
      • 2011-12-23
      • 2012-05-30
      • 2013-04-01
      • 2011-03-31
      • 2014-09-15
      • 1970-01-01
      • 2011-12-25
      • 2012-06-26
      • 2012-10-29
      相关资源
      最近更新 更多