python - parallel - rabbitmq server
Biblioteca de Good Python para AMQP (4)
Actualmente estoy en el medio de hacer que nuestra aplicación Python use SSL. Originalmente no desarrollé esta aplicación (ni soy un desarrollador de Python), así que no sé mucho sobre ella, pero parece que usamos el Cliente AMQP en Twisted .
qpid también tiene uno. Una vez más, no sé la calidad.
¿Puede recomendar qué biblioteca de Python usar para acceder a AMQP (RabbitMQ)? De mi investigación el pika
parece ser el preferido.
Habiendo examinado todas estas bibliotecas, ahora estoy convencido de que la respuesta correcta no es ninguna de ellas. En su lugar, cree una capa de abstracción como cuña sobre la biblioteca que elija, ya que está obligado a encontrarse en una situación en la que tiene que cambiar las bibliotecas.
Pero recuerde, si se adhiere a la misma versión del protocolo AMQP, estas bibliotecas interactúan. Debido a que se probaron diferentes bibliotecas, tuvimos partes de una aplicación prototipo que ejecutaba pika, kombu y py-amqplib.
Lea este blog sobre cómo reemplazar amqplib con pika para tener una idea de por qué es una buena idea.
Mi propia investigación me llevó a creer que la biblioteca correcta para usar sería Kombu , ya que también es a lo que Celery (mencionado por @SteveMc) ha hecho la transición. También estoy usando RabbitMQ y he usado Kombu con el backend de amqplib predeterminado con éxito.
Kombu también soporta otros transportes detrás de la misma API. Útil si necesitas reemplazar AMQP o agregar algo como redis a la mezcla. Aunque no lo he intentado.
Nota al margen: Kombu actualmente no es compatible con la última versión de pika (en caso de que dependas de ella por alguna razón). Sólo 5.2.0 es compatible actualmente, esto me mordió hace un tiempo.
Pika es la biblioteca recomendada por RabbitMQ, y también se menciona py-ampqlib . Dependiendo de para qué esté utilizando Rabbit, es posible que también desee consultar Celery (una biblioteca cliente dedicada a la cola distribuida).
Una vez más, dependiendo del uso, es posible que también desee ver el qpid de Apache, que es una alternativa cliente-servidor basada en AMPQ a RabbitMQ. Una cosa que nos atrajo a qpid fue que parecía tener una mayor solidez en los fallos del servidor (las colas se conservan de forma distribuida).