rabbitmq 有人能告诉我pika和kombu消息库在python中有什么区别吗?

3duebb1j  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(233)

我想在我的应用程序中使用消息库来与rabbitmq交互。有人能解释一下pika和kombu库之间的区别吗?

0x6upsns

0x6upsns1#

Kombu和pika是两个不同的python库,它们基本上服务于相同的目的:向/从消息代理发布和使用消息。
Kombu的抽象级别比Pika高,Pika只支持AMQP0.9.1协议,而Kombu可以支持其他传输更一般地说,Kombu比pika的功能更丰富,它支持重连接策略、连接池、故障转移策略其中一些功能是必须具备的(如果你在一个严肃的项目中选择使用Pika,你将不得不重新实现或变通),其他一些只是很好的。一个库越复杂,你越会对它的行为感到惊讶,也就越难推理和跟踪bug。Pika的代码库相对较小,很容易进入。另一方面,Kombu是为Celery量身定制的,这是一个庞大的项目。Celery的文档相当不错。然而,Kombu的文档相比之下是相当糟糕的。感觉Celery才是要曝光的项目,而不是Kombu。
实际上,当使用AMQP作为传输工具时,Kombu使用py-amqp库或librabbitmq来发送/接收/解析AMQP 0.9.1帧。在这方面,pika在抽象级别上比Kombu更接近py-amqp
RabbitMQ是复杂的。如果您认为不应该在已经很好封装的特性上增加复杂性,或者如果您需要对RabbitMQ进行更多的控制和理解,请选择pika。如果您需要一个交钥匙解决方案,而不想重新发明轮子,请选择Kombu(即重新实现一些基本特性,这些特性在大多数情况下只需要几行代码)。但是无论您选择什么库,但您不应该因此而放弃深入了解底层代理的优点和局限性。

相关问题