我使用的是activemq(对我来说很新颖),我有一个生产者和几个消费者。如何为我在activemq中的每个消费者创建单独的队列?
事情是,我想,以解决特定消费者的消息。 我读到selectors也读到it is a bad practice使用,也了解了一些alternatives。
这种方案听起来对我好,但我不知道我怎么能创造这些队列为每一个我的奴隶之一。 我的奴隶的每个人都有一个ID(UUID)时,我创建了听众,我可以使用 - 这样的:
<jms:listener-container
container-type="default"
connection-factory="jmsConnectionFactory"
acknowledge="auto">
<jms:listener destination="slave.tasks.${slave.id}" ref="jmsActivityListener" method="onMessage" />
</jms:listener-container>
这需要slave.properties文件包含以下项:
slave.id=XXXXXXX
我的问题是:
1)是的方式做到这一点(限定每个接收者的队列)?
2)我怎么能产生这种salve.id值(我不希望用户填写,因为它必须是唯一的)?
感谢
感谢您的答复,但我认为这不会解决我的问题 - 因为我想将消息发送到特定的消费者(不是全部)。如果我正确理解这一点,这更像是一个我想避免的Topic解决方案,因为消息必须发送给一个消费者(例如100),所以我不想使用主题( – Noam
如果您在jmsConnectionFactory中使用admins角色的用户/ pwd,则您的目标将在运行时自动创建,但您需要找到将每个用户映射到其编号的解决方案 –
是的 - 我知道并且正在使用管理员的信誉。但我需要一种方法来配置从属端的侦听器 - 为此,我需要知道不属于配置的id(正如我在我的问题中提到的) – Noam