我有一个rabbitmq集群用作工作队列。有5种消费者想要使用完全相同的数据。
我现在知道的是使用扇出交换将数据“复制”到5个不同的队列中。而这5个消费者可以使用不同的队列。这有点浪费资源,因为文件队列中的数据是相同的。
我的问题是,rabbitmq是否支持将相同的数据推送给多个消费者?就像一条消息需要在指定的时间内被加加才能被删除。
我从电子邮件组得到了以下答案。简而言之,答案是否定的..。我以上所做的是正确的方法。
http://rabbitmq.1065348.n5.nabble.com/Does-rabbitmq-support-to-push-the-same-data-to-multi-consumers-td36169.html#a36170
发布于 2014-06-12 09:30:44
..。扇出交换,以“复制”数据到5个不同的队列。而这5个消费者可以使用不同的队列。这有点浪费资源,因为文件队列中的数据是相同的。
如果不想复制消息,可以使用一个队列中的5个消费者。
rabbitmq是否支持将相同的数据推送给多个使用者?
在AMQP协议术语中,您将消息发布到exchange,然后由代理( RabbitMQ )决定如何处理消息--假设它确定了队列消息的目的(一个或多个),然后将该消息放在队列的顶部(RabbitMQ中的队列是典型的FIFO队列,这在某种程度上破坏了RabbitMQ的AMQP实现)。只有在该消息传递到使用者之后(或由于队列长度限制或每个队列或每条消息ttl (如果有的话)而死亡)。
需要在指定的时间内添加要删除的消息。
消息发布后无法更改消息主体或属性(实际上,死信交换扩展和其他一些可能更改路由密钥,例如添加、删除和更改某些标头,但这是非常具体的情况)。因此,如果您想跟踪ack的号码,您必须用更改的正文或头重新发布已消耗的消息(取决于您计划在哪里存储ack的计数器,但是头非常适合这一点。
还要注意的是,有redeliverd message属性,它表示消息是否已经被消耗,但随后被重新传递。此标志不计算重传号码,因此它的使用是相当有限的。
https://stackoverflow.com/questions/24179478
复制相似问题