划分消息队列的标准智慧和考虑因素是什么?
假设消息数量相对较少(<1000 /天),将多个消息类型组合到一个队列中并让消费者使用选择器来过滤它们是否有意义?或者,单个队列是否只处理单个消息类型?
我能想到的几个可能的考虑因素:
答案 0 :(得分:1)
任何给定的MQ系统都应该能够处理任何给定队列中的数百万条消息,我根本不会关注voume。
我更喜欢具有独特现实意义的队列,而不是担心选择器。我知道有正确的理由使用选择器或消费和重新排队,但我更喜欢让队列分明,不用担心选择。
答案 1 :(得分:1)
由于这并没有真正解决,你在问题中询问过这个问题(当我发现这个问题时,这是我正在寻找的东西),我想我可以说明如何在单个信息上过滤信息,类型异构队列。
如果查看here,您会发现所有名为JMSType
的邮件都可以使用用户定义的属性。这是String
,默认为空。当您发送消息时,请让您的生产者将其设置为商定的值,例如map
或text
,然后,在您的消费者中,使用特定的消息选择器,具体取决于您想要收到的消息。使用相同的示例,它将是JMSType = 'map'
或JMSType = 'text'
。
我能够使用ActiveMQ-CPP库成功地与Java生产者和C ++使用者一起使用此技术。