我是Activemq
和Java
的新手,我读过教程,有些我理解。任何人都可以帮我解决以下任务。
想象一下,我们在Activemq的Queue / Topic中有10条消息。我们从数据库获取消息,我们已经做到了。
我想编写2个Java应用程序(使用JMS接收来自activemq的消息),它将充当Activemq中的使用者。我想要实现的是,每当Activemq
从数据库获取消息时,activemq应该检查是否有任何消费者是免费的。如果任何消费者都是免费的,activemq应该将消息推送到消费者,一旦消费者收到它就会做它自己的处理。
那么我的java代码应该如何才能实现呢?
还有如何设置预取限制?
任何人都可以帮助我。
感谢。
答案 0 :(得分:3)
很高兴知道AMQ经纪人和数据库之间有生产者,他们不断向AMQ推送消息。
回答你的问题。可以有多个消费者在任何目的地(队列/主题)上进行侦听。 ActiveMQ代理将消息推送给任何消费者(其分发可以自定义)。正如我在上一个问题中回答的那样,AMQ将在开始等待获取prefetch limit
之前使用ack
(假设为N)发送那么多消息。如果消费者忙,那么只有N个消息在其本地缓冲区中等待,AMQ代理将自动选择其他消费者来推送消息。