Rabbitmq 阻塞连接使用来自 RabbitMQ 的消息与使用阻塞连接从 RabbitMQ 获取消息
Rabbitmq Blocking Connection to consume messages from RabbitMQ vs Using the Blocking Connection to get a message from RabbitMQ
我对使用 rabbitmq's
pika
库的两种方法感到很困惑。
第一个是Blocking consume
第二个是 Blocking basic_get
有人可以详细解释这些差异吗?
阻塞消费的区别是,如果消息被发送到,它总是从队列中取出消息,而在basic_get中,我们可以更多地控制何时从队列中取出消息?
是的,你说得对。
basic_get()
从 RabbitMQ 的角度来看,这是一个 pull 操作。
您可以随时在代码中检索消息。换句话说,这是一个顺序操作。当您询问时,您会收到一条消息。然后,不是 "automatically" 的客户端获取新消息。将其视为对 REST API 的常规调用。
bascic_consume()
从 RabbitMQ 的角度来看,这是一个 push 操作。
您打开到服务器的管道并告诉 RabbitMQ "hey as soon as something new arrives, send it to me"。这是一个非常强大的功能,可以为您提供更高的性能,允许您控制一次可以处理的消息数量等等。
我对使用 rabbitmq's
pika
库的两种方法感到很困惑。
第一个是Blocking consume
第二个是 Blocking basic_get
有人可以详细解释这些差异吗?
阻塞消费的区别是,如果消息被发送到,它总是从队列中取出消息,而在basic_get中,我们可以更多地控制何时从队列中取出消息?
是的,你说得对。
basic_get()
从 RabbitMQ 的角度来看,这是一个 pull 操作。 您可以随时在代码中检索消息。换句话说,这是一个顺序操作。当您询问时,您会收到一条消息。然后,不是 "automatically" 的客户端获取新消息。将其视为对 REST API 的常规调用。
bascic_consume()
从 RabbitMQ 的角度来看,这是一个 push 操作。 您打开到服务器的管道并告诉 RabbitMQ "hey as soon as something new arrives, send it to me"。这是一个非常强大的功能,可以为您提供更高的性能,允许您控制一次可以处理的消息数量等等。