【问题标题】:Can a Pika RabbitMQ client service both consume and publish messages?Pika RabbitMQ 客户端服务可以消费和发布消息吗?
【发布时间】:2018-04-02 22:53:34
【问题描述】:

有 Pika 经验的人能否快速回答我是否可以使用以下功能,或者我的想法是否表明对 Pika 缺乏概念性理解。

我想要的功能:

Python 服务(单线程脚本)使用 SelectConnection 适配器与我的 RabbitMQ 代理建立了一个连接。

该连接有两个通道。

使用一个通道 A,服务声明一个队列并绑定到某个交换 E1。 另一个通道 B 用于声明其他交换 E2。

服务通过 A 使用队列中的消息。 它对这些消息进行一些小处理,[可能通过其与 MongoDB 实例的连接执行 CRUD 操作],然后发布消息以通过 B 交换 E2。

我已经彻底阅读了 Pika 文档,但没有找到足够的信息来了解这是否可行。

简单地说——一个python脚本可以通过一个selectconnection适配器连接发布和消费吗?

【问题讨论】:

  • 您的问题的答案是“是”。只要你不跨线程使用它,你就可以对连接做任何你想做的事情。
  • 谢谢user8808265。 FWIW,如果您“回答”这个问题,我会接受它作为答案。

标签: rabbitmq messaging microservices pika python-pika


【解决方案1】:

当然可以。您可以通过多种方式实现这一点(通过相同的连接、不同的连接、相同的通道、不同的通道等)

当我过去实现此功能时,我会创建连接、获取通道并使用它的委托(函数)设置我的消费者。当我的消费消息函数被调用时,我得到了它附带的通道参数,我依次使用它来将下一条消息发布到不同的队列。如果您不想使用同一个频道,您可以简单地设置另一个频道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2012-03-24
    • 2011-04-27
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多