Nit*_*put 13 amqp rabbitmq python-2.7 kombu pika
我想在我的应用程序中使用消息库来与rabbitmq进行交互.谁能解释一下pika和kombu图书馆之间的区别?
use*_*265 20
Kombu和pika是两个不同的python库,它们基本上用于同一目的:向消息代理发布消息或从消息代理消费消息.
Kombu的抽象水平高于鼠兔.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帧.在这方面,py-amqp在抽象水平方面,鼠兔比昆布更接近.
RabbitMQ很复杂.如果您认为不应该增加已经很好封装的功能的复杂性,或者您需要对RabbitMQ有更多的控制和理解,请选择鼠标.如果您需要一个交钥匙解决方案并且不想重新发明轮子,请选择Kombu(即重新实现一些基本功能,这些功能大多数时间都值得几行代码).但无论你选择什么样的图书馆,它都不应该免除你深入了解底层经纪人的优势和局限性.