Подтвердить что ты не робот

Хорошая библиотека Python для AMQP

Можете ли вы порекомендовать, какую библиотеку Python использовать для доступа к AMQP (RabbitMQ)? Из моего исследования pika представляется предпочтительным.

4b9b3361

Ответ 1

Pika - рекомендуемая библиотека RabbitMQ, а также py-ampqlib. В зависимости от того, для чего вы используете Rabbit, вы также можете посмотреть Celery (клиентская библиотека, предназначенная для распределенной очереди).

Опять же, в зависимости от использования, вы также можете посмотреть Apache qpid, который является полной альтернативой клиент-серверу на основе AMPQ к RabbitMQ. Одна вещь, которая привлекла нас к qpid, заключалась в том, что она казалась лучшей надежностью при сбоях сервера (очереди сохраняются распределенным образом).

Ответ 2

Мои собственные исследования привели меня к мысли, что правильная библиотека для использования будет Kombu, так как это также означает, что сельдерей (упомянутый @SteveMc). Я также использую RabbitMQ и успешно использовал Kombu с бэкэндом по умолчанию amqplib.

Kombu также поддерживает другие транспорты за тем же API. Полезно, если вам нужно заменить AMQP или добавить что-то вроде redis в микс. Однако не пробовал.

Sidenote: Kombu в настоящее время не поддерживает последнюю версию pika (если вы полагаетесь на нее по какой-то причине). В настоящее время поддерживается только 5.2.0, это немного меня немного назад.

Ответ 3

Посмотрев на все эти библиотеки, я теперь убежден, что правильный ответ - ни один из них. Вместо этого создайте слой абстракции как прокладку любой выбранной вами библиотеки, потому что вы должны столкнуться с ситуацией, когда вам нужно менять библиотеки.

Но помните, что если вы придерживаетесь той же версии протокола AMQP, эти библиотеки взаимодействуют друг с другом. Из-за тестирования различных библиотек у нас были части прототипного приложения, работающего на pika, kombu и py-amqplib.

Прочтите этот блог о заменить amqplib на pika, чтобы понять, почему это хорошая идея.

Ответ 4

В настоящее время я использую SSL для использования нашего приложения Python. Я изначально не разрабатывал это приложение (и я не разработчик Python), поэтому я мало знаю об этом, но мы, похоже, используем AMQP Client в Витая.

QPid также есть. Опять же, я не знаю качества.