3

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

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

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

假设

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

仿真

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

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

4

2 回答 2

3

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

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

  4. 在地址 1 上发送消息

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

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

于 2011-12-01T05:37:47.387 回答
0

http://hornetq.sourceforge.net/docs/hornetq-2.0.0.BETA5/user-manual/en/html/using-jms.html

7.5。不使用 JNDI 直接实例化 JMS 资源

于 2011-01-04T08:12:57.330 回答