【问题标题】:Can anyone please tell me what are the differences between pika and kombu messaging library in python?谁能告诉我 python 中 pika 和 kombu 消息传递库有什么区别?
【发布时间】:2018-07-09 12:32:21
【问题描述】:

我想在我的应用程序中使用消息传递库与 rabbitmq 进行交互。谁能解释一下 pika 和 kombu 库之间的区别?

【问题讨论】:

    标签: python-2.7 rabbitmq amqp pika kombu


    【解决方案1】:

    Kombu 和 pika 是两个不同的 Python 库,它们的用途基本相同:向/从消息代理发布和使用消息。

    Kombu 比 pika 具有更高的抽象级别。 Pika 仅支持 AMQP 0.9.1 协议,而 Kombu 可以支持其他传输(例如 Redis)。更一般地说,Kombu 比 pika 功能更丰富。它支持重新连接策略、连接池、故障转移策略等。其中一些功能是必备的(如果您选择在严肃的项目中使用 Pika,则必须重新实现或解决这些功能),而其他一些功能则很好。这样做的缺点:一个库越复杂,你就越会对它的行为感到惊讶,并且越难推理和跟踪错误。 Pika 的代码库相对较小且易于使用。另一方面,Kombu 是为Celery 量身定制的,这是一个巨大的项目。 Celery 的文档相当不错,但 Kombu 的文档相比之下就很差了。感觉 Celery 是打算公开的项目,而不是 Kombu。

    在底层,当使用 AMQP 作为传输时,Kombu 使用 py-amqp 库或 librabbitmq 来发送/接收/解析 AMQP 0.9.1 帧。在这方面,pika 在抽象级别上会比 Kombu 更接近py-amqp

    RabbitMQ 很复杂。如果您认为不应该在已经很好封装的功能上增加复杂性,或者如果您需要对 RabbitMQ 进行更多控制和理解,请选择 pika。如果您需要一个交钥匙解决方案并且不想重新发明轮子(即重新实现一些在大多数情况下值得几行代码的基本功能),请选择 Kombu。但无论您选择什么库,它都不应该让您无需深入了解底层代理的优势和局限性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 2023-02-07
      相关资源
      最近更新 更多