¿Puede recomendar qué biblioteca de Python usar para acceder a AMQP (RabbitMQ)? De mi investigación pika
parece ser el preferido.Buena biblioteca de Python para AMQP
Respuesta
Pika es la biblioteca recomendada por RabbitMQ, y py-ampqlib también se menciona. Dependiendo de para qué esté usando Rabbit, también puede consultar Celery (una biblioteca de cliente dedicada a la cola distribuida).
De nuevo, dependiendo del uso, es posible que también desee consultar 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 una mayor solidez en los bloqueos de servidor (las colas se conservan de forma distribuida).
Actualmente estoy en el medio de hacer que nuestra aplicación Python use SSL. No desarrollé originalmente esta aplicación (ni soy un desarrollador de Python), así que no sé mucho al respecto, pero parece que utilizamos el AMQP Client in Twisted.
QPid también tiene uno. De nuevo, no sé la calidad.
Miré brevemente txAMQP pero el desarrollo parece haberse estancado – dgorissen
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 Celery (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 admite other transports detrás de la misma API. Útil si necesita reemplazar AMQP o agregar algo como redis a la mezcla. No lo he intentado sin embargo.
Nota: Kombu actualmente no es compatible con la última versión de pika (en caso de que confíe en ella por algún motivo). Solo 5.2.0 es compatible actualmente, esto me mordió hace un tiempo.
Debe actualizar esta respuesta ahora que, de acuerdo con el problema al que se vincula, descubrió su error y que no fue Kombu el que se rompió. –
@Brandon Craig Rhodes: hecho :) – dgorissen
Después de haber examinado 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 la biblioteca que elija, ya que es probable que se encuentre con una situación en la que tenga que cambiar las bibliotecas.
Pero recuerde que si se apega a la misma versión del protocolo AMQP, estas bibliotecas sí interoperan. Debido a las diferentes bibliotecas que se están probando, teníamos partes de una aplicación prototipo ejecutando pika, kombu y py-amqplib.
Lea este blog sobre replacing amqplib with pika para tener una idea de por qué esta es una buena idea.
- 1. ¿Buena biblioteca de geometría en python?
- 2. ¿Buena biblioteca de python para generar archivos de audio?
- 3. ¿Hay una buena biblioteca de diagramas para Python?
- 4. ¿Existe una buena biblioteca para acceder a HBase desde Python?
- 5. Implementación AMQP C++
- 6. AMQP + bibliotecas de Android
- 7. Una buena biblioteca de C++ para SOAP
- 8. Buena biblioteca de Tiff para .NET
- 9. buena biblioteca de PDF gratuita para Delphi
- 10. ¿Buena biblioteca de inflexión para PHP?
- 11. ¿Buena biblioteca de programación lineal para C#?
- 12. Buena biblioteca PHP ORM?
- 13. ¿Buena biblioteca HTTP para Objective-C/iPhone?
- 14. Buena biblioteca similar a STL para C
- 15. ¿Hay una buena biblioteca yaml para Android?
- 16. Buena biblioteca para bitsets o bitarrays
- 17. ¿Buena biblioteca para matemáticas 3D en C#?
- 18. PHP buena biblioteca de registro?
- 19. Biblioteca de Python para generar archivos VCF?
- 20. Biblioteca de red neuronal para Python?
- 21. amqp o xmpp para juegos en tiempo real en línea
- 22. ¿Qué es una buena biblioteca de Python para árboles de decisión?
- 23. Biblioteca Python para el filtrado XSS?
- 24. Buena biblioteca liviana para HTTP POST/GET para C?
- 25. ¿Hay una buena biblioteca de pluralización de cadenas para actionscript?
- 26. ¿Buena biblioteca de PHP para consultar productos de Amazon?
- 27. ¿Alguna buena biblioteca de navegación de fotos para Objective C?
- 28. ¿Qué es una buena biblioteca de cliente SOAP para python en App Engine?
- 29. ¿Buena biblioteca de python para diseñar un mmo? Actor diseño basado
- 30. ¿Una buena biblioteca colaborativa de filtro/coincidencia/recomendación para Python/Django?
Acabo de descubrir que el apio crea una cola por tarea, lo que es una debilidad decepcionante http://celeryproject.org/docs/userguide/tasks.html#amqp-result-backend –
No hemos encontrado que sea un problema ; nuestras tareas de uso se consumen rápidamente (muy raramente esperamos que algo esté sentado por más de unos segundos). También puede ser específico de la implementación; mencionan específicamente RabbitMQ allí. Sin embargo, me gustaría saber si te está causando dificultades. – SteveMc
Nunca probé el apio porque simplemente no parecía ajustarse a la arquitectura general de AMQP. La cola de mensajes no es solo para distribuir tareas a grupos de trabajadores. –