Python Rabbitmq服务器正在工作

Python Rabbitmq服务器正在工作,python,rabbitmq,Python,Rabbitmq,假设我在rabbitmq服务器上有一个生产者,它将生成一个随机数并将其传递给消费者。消费者将收到生产商提供的所有随机数字。如果我要终止我的消费者进程,在这种情况下,生产者会怎么做?无论它是否会持续生成号码,当消费者(客户)出现时,它都会再次发送由制作人或其他东西生成的所有号码 mq中的q代表队列。这意味着队列中放置的所有消息(在您的情况下为随机数)将一直保留在队列中,直到有人来获取它们。要充分利用此功能,您需要了解rabbitmq代理如何与Exchange一起工作。我相信这会解决你的问题 您将创

假设我在rabbitmq服务器上有一个生产者,它将生成一个随机数并将其传递给消费者。消费者将收到生产商提供的所有随机数字。如果我要终止我的消费者进程,在这种情况下,生产者会怎么做?无论它是否会持续生成号码,当消费者(客户)出现时,它都会再次发送由制作人或其他东西生成的所有号码

mq中的q代表队列。这意味着队列中放置的所有消息(在您的情况下为随机数)将一直保留在队列中,直到有人来获取它们。

要充分利用此功能,您需要了解rabbitmq代理如何与Exchange一起工作。我相信这会解决你的问题

您将创建一个exchange,而不是发送到单个队列。制作人发送给交易所。在此状态下,此时没有队列,消息将被丢弃。然后需要创建一个队列,以便消费者接收消息。使用者将创建队列并将其绑定到exchange。此时,队列将接收消息并将其传递给消费者


在您的情况下,您可能会使用扇出交换,这样就不需要担心绑定和路由密钥。但您还应该将队列设置为自动删除。这将确保当消费者下线时,队列将被删除。因此,不受此影响的生产者将继续向exchange发送消息,这些消息将被丢弃,直到队列重新连接

现在,我假设您有一个主题交换。如果有一个队列及其绑定到生产者的同一交换和路由密钥(或虚线前缀),无论是否有消费者,该队列都将生成消息。。。大部分情况下

RabbitMQ中消息传递模型的核心思想是生产者 从不将任何消息直接发送到队列。事实上,经常 制作人甚至不知道消息是否会发送给任何人 不要排队。 --

如果队列不存在,消息将被丢弃。如果队列确实存在(即其持久性),则可以对队列和/或消息进行配置,以使消息具有TTL或生存时间:(和)。您可能还想了解队列持久性和自动删除。我强烈建议您也查看AMQP快速参考,因为您可以从中找出您想要的内容:。您必须将伪代码转换为库或客户端

基本上,这一切归结为什么类型的交换以及队列和消息的配置