我想使用HornetQ核心API翻译JMS主题的概念。在我简要地检查之后,似乎主要类JMSServerManagerImpl (来自hornetq-jms.jar) 使用jndi来协调各种所需的协作。我希望避免jndi,因为它不是自包含的,并且是一个全局共享对象,特别是在osgi环境下会有问题。一种替代方法是从JMSServerManagerImpl开始复制,但这似乎是很多工作。我更希望确认我的方法是否正确,即通过模拟HornetQ中支持主题的方式来解决这个问题。如果有人有足够的知识,或许他们可以发表评论,以便我能了解使用核心api编写自己的主题模拟的正确方法。
假设:
如果消息消费者失败(通过回滚),容器将尝试将消息传递给同一主题的另一个不同消费者。
模拟:
1.封装添加到主题的每个消息。 2.发送方设置带有确认处理程序的消息。 3.包装器(1)在真实侦听器返回后将回滚。 4.发送方随后确认交付。
我假设在第四步后,消息将被传递给所有消息接收者。如果我犯了任何错误或我的假设是错误的,请评论说明。我不确定确认如何工作的假设是否正确,所以任何指针都会很好。
假设:
如果消息消费者失败(通过回滚),容器将尝试将消息传递给同一主题的另一个不同消费者。
模拟:
1.封装添加到主题的每个消息。 2.发送方设置带有确认处理程序的消息。 3.包装器(1)在真实侦听器返回后将回滚。 4.发送方随后确认交付。
我假设在第四步后,消息将被传递给所有消息接收者。如果我犯了任何错误或我的假设是错误的,请评论说明。我不确定确认如何工作的假设是否正确,所以任何指针都会很好。