不使用JMS Wrapper如何使用HornetQ核心API模拟JMS主题

时间:2011-01-02 12:06:31

标签: jboss jms hornetq

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

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

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

ASSUMPTION

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

EMULATION

  1. 包装为主题添加的每条消息。
  2. 发送者发送带有确认处理程序集的消息。
  3. (1)的包装器将在真正的侦听器返回后回滚。
  4. 发件人然后确认递送
  5. 我假设4,msg在被送到所有msg接收器之后被传送。如果我犯了任何错误或我的假设是错误的,请评论。我不确定这种关于确认如何工作的假设是正确的,所以任何指针都会很好。

2 个答案:

答案 0 :(得分:3)

如果您正在尝试弄清楚如何使用核心API向多个消费者发送消息;这是我的建议

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

  4. 在地址1上发送消息

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

    这种方式基本上就像一个主题。

答案 1 :(得分:0)