我读了hornetQ文档,困惑了很多。有人可以给出一个确切的例子来在hornetQ中创建一个JMS主题。我的意思是hornetq-jms.xml
和hornetq-configuration.xml
中的xml配置。假设我们有一个名为top
的主题和2个订户:sub1
,sub2
。我得到的是我们应该定义两个队列(每个用户一个队列)并将它们绑定到实际上是主题名称的地址,但是用户如何知道他们应该连接到哪个队列?(他们只知道主题名称)JMS主题在HornetQ中的确切示例
回答
我认为HornetQ处理内部问题的方式与JMS规范描述主题的方式形成了鲜明对比,令您感到困惑。
让我们从JMS规范开始。在这里,您有一个主题,其中n个订阅者可以收听消息,这些消息将由客户端发布。在JMS中,我们只谈论单数的目的地,例如。我们将分别发送消息主题或队列。
HornetQ是一个JMS提供者 - 一个实现了JMS规范的服务器,所以Java客户端可以连接它并使用JMS-API。 JMS提供程序可能会更改,但是在使用其他JMS提供程序时,该代码仍然可以工作。
但是,HornetQ并没有在内部区分目的地(主题或队列),因为它试图成为通用消息中间件。在HornetQ中,所有主题或队列都以“地址”和“队列”的形式实现。当你使用HornetQ API(CoreAPI)而不是JMS-API时,你必须处理这些事情。您应该阅读HornetQ documentation中的地址部分:
在核心中,没有主题的概念,主题是仅用于JMS的术语。相反,在核心,我们只处理地址和队列。
例如,JMS主题将由单个地址实现到 ,许多队列被绑定。每个队列代表订阅 的主题。 JMS队列将作为单个地址实现到 哪一个队列被绑定 - 该队列表示JMS队列。
有关如何通过HornetQ使用JMS主题的示例,我强烈建议使用HornetQ自带的示例。在加载并提取hornetq存档后,只需转至examples/jms/topic
目录并查看readme.html以简要了解如何实施以及如何执行示例(mvn verify
)。
+1 ... Majid Azimi令JMS Concepts与核心概念混淆不清。他所要做的就是将其添加到hornetq-jms.xml中 –
- 1. HornetQ JMS主题到主题桥
- 2. JMS和HornetQ
- 3. Jboss EAP 6.3 - 收听远程JMS主题(HornetQ)
- 4. HornetQ的主题主题弥合
- 5. 没有JMS和JNDI的HornetQ
- 6. 如何以编程方式在HornetQ中创建JMS主题和队列?
- 7. Spring JMS与JBoss 7.11(HornetQ)
- 8. 配置JMS转移JBoss7(HornetQ)
- 9. JMS队列和JMS主题
- 10. Wildfly JMS主题
- 11. 如何从javascript订阅JMS主题 - 需要完整示例
- 12. JMS-的HornetQ的JBoss AS6配置
- 13. JMS:当从主题
- 14. 带jms的消息计数器Hornetq
- 15. HornetQ失去了它的所有主题
- 16. 使用Active MQ的示例JMS示例
- 17. JEE 6 JMS示例
- 18. Log4j JMS appender示例
- 19. 在spring jms主题中指定名称
- 20. 确定JMS中每个主题的订户数
- 21. 在Spring中创建临时JMS jms主题
- 22. 通过JMS的Esper示例
- 23. 使用HornetQ运行JMS桥接器
- 24. Mule ESB HornetQ JMS消息未发布
- 25. JMS连接/ ConnectionFactory引用与HornetQ
- 26. JMS主题vs Apache Camel中的组播
- 27. 订阅JMS中的多个主题
- 28. 在javascript中切换主题
- 29. 用Jms发送对象 - HornetQ(性能问题)
- 30. Java WeakReferences =理解问题(使用HornetQ JMS实现)?
你应该接受答案。有人免费给你做了一些工作,你至少可以给他提供他给你的答案的要点。 –