我想在我的应用程序中使用消息传递库与rabbitmq交互。谁能解释一下 pika 和 kombu 库之间的区别吗?
Kombu 和 pika 是两个不同的 Python 库,它们从根本上服务于相同的目的:向消息代理发布消息和使用消息代理发送消息。
昆布比鼠兔具有更高的抽象水平。 Pika 仅支持 AMQP 0.9.1 协议,而 Kombu 可以支持其他传输(例如 Redis)。更一般地说,昆布比鼠兔功能更丰富。它支持重新连接策略、连接池、故障转移策略等。其中一些功能是必备的(如果您选择在严肃的项目中使用 Pika,则必须重新实现或解决这些功能),而其他一些功能则很不错。这样做的缺点是:库越复杂,您对其行为就越感到惊讶,并且推理和跟踪错误就越困难。 Pika 的代码库相对较小且易于入门。另一方面,昆布是为Celery https://github.com/celery/celery这是一个巨大的工程。 Celery 的文档相当不错,但相比之下 Kombu 的文档就很差了。感觉就像 Celery 是要曝光的项目,而不是 Kombu。
在幕后,当使用 AMQP 作为传输时,Kombu 使用py-amqp https://github.com/celery/py-amqp图书馆或librabbitmq https://github.com/celery/librabbitmq发送/接收/解析 AMQP 0.9.1 帧。从这方面来说,鼠兔更接近于py-amqp
就抽象水平而言,它比海带(Kombu)要好。
RabbitMQ 很复杂。如果您认为不应该增加已经封装好的功能的复杂性,或者如果您需要对 RabbitMQ 进行更多控制和理解,请选择 pika。如果您需要交钥匙解决方案并且不想重新发明轮子(即重新实现一些基本功能,而这些功能在大多数情况下只需要几行代码),请选择 Kombu。但无论您选择什么库,它都不应该让您不必深入了解基础经纪商的优势和局限性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)