Buena biblioteca Python para AMQP [cerrado]


¿Puede recomendar qué biblioteca de Python usar para acceder a AMQP (RabbitMQ)? De mi investigación pika parece ser el preferido.

Author: A Lee, 2011-02-17

4 answers

Pika es la biblioteca recomendada por RabbitMQ, y py-ampqlib también se menciona. Dependiendo de para qué estés usando Rabbit, es posible que también quieras ver Celery (una biblioteca cliente dedicada a la cola distribuida).

De nuevo, dependiendo del uso, es posible que también desee ver el qpid de Apache, que es una alternativa cliente-servidor basada en AMPQ completa a RabbitMQ. Una cosa que nos atrajo a qpid fue que parecía tener mejor robustez en los fallos del servidor (las colas se mantienen de forma distribuida).

 19
Author: SteveMc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-07 01:23:41

Mi propia investigación me llevó a creer que la biblioteca correcta para usar sería Kombu, ya que esto es también a lo que Apio (mencionado por @SteveMc) ha hecho la transición. También estoy usando RabbitMQ y he usado Kombu con el backend predeterminado de amqplib con éxito.

Kombu también soporta otros transportes detrás de la misma API. Útil si necesita reemplazar AMQP o agregar algo como redis a la mezcla. Aunque no lo he intentado.

Nota lateral: Kombu no lo hace actualmente soporta la última versión de pika (si confías en ella por alguna razón). Solo 5.2.0 está soportado actualmente, esto me mordió hace un tiempo.

 22
Author: dgorissen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-28 15:43:46

Después de haber mirado todas estas bibliotecas, ahora estoy convencido de que la respuesta correcta es ninguna de ellas. En su lugar, construya una capa de abstracción como una cuña sobre cualquier biblioteca que elija porque está obligado a encontrarse con una situación en la que tiene que cambiar las bibliotecas.

Pero recuerde, que si se adhiere a la misma versión del protocolo AMQP, estas bibliotecas interoperan. Debido a las diferentes bibliotecas que se están probando, teníamos partes de una aplicación prototipo que ejecutaba pika, kombu y py-amqplib.

Lee este blog sobre reemplazar amqplib con pika para tener una idea de por qué es una buena idea.

 2
Author: Michael Dillon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-26 07:37:16

Actualmente estoy haciendo que nuestra aplicación Python use SSL. Originalmente no desarrollé esta aplicación (ni soy desarrollador de Python), así que no sé mucho sobre ella, pero parece que usamos el Cliente AMQP en Twisted.

QPid también tiene uno. De nuevo, no conozco la calidad.

 1
Author: OleTraveler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-08 17:51:47