如何将消息从Activemq推送到消费者

时间:2013-09-05 07:51:00

标签: java jms activemq message-queue producer-consumer

我是ActivemqJava的新手,我读过教程,有些我理解。任何人都可以帮我解决以下任务。

想象一下,我们在Activemq的Queue / Topic中有10条消息。我们从数据库获取消息,我们已经做到了。

我想编写2个Java应用程序(使用JMS接收来自activemq的消息),它将充当Activemq中的使用者。我想要实现的是,每当Activemq从数据库获取消息时,activemq应该检查是否有任何消费者是免费的。如果任何消费者都是免费的,activemq应该将消息推送到消费者,一旦消费者收到它就会做它自己的处理。

那么我的java代码应该如何才能实现呢?

还有如何设置预取限制?

任何人都可以帮助我。

感谢。

1 个答案:

答案 0 :(得分:3)

很高兴知道AMQ经纪人和数据库之间有生产者,他们不断向AMQ推送消息。

回答你的问题。可以有多个消费者在任何目的地(队列/主题)上进行侦听。 ActiveMQ代理将消息推送给任何消费者(其分发可以自定义)。正如我在上一个问题中回答的那样,AMQ将在开始等待获取prefetch limit之前使用ack(假设为N)发送那么多消息。如果消费者忙,那么只有N个消息在其本地缓冲区中等待,AMQ代理将自动选择其他消费者来推送消息。