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

Amqp vs amqplib - какая клиентская библиотека Node.js amqp лучше?

В чем разница между этими клиентскими библиотеками amqp? Какой из них наиболее рекомендуется? Каковы основные отличия?

4b9b3361

Ответ 1

Я бы рекомендовал amqp.node и bramqp через node -amqp. node -amqp имеет много ошибок и плохо поддерживается, и он скрывает концепцию "канала", которая вводит множество проблем для серверов rabbitmq (потому что они никогда не закрываются).

Ответ 2

Я парень, который написал библиотеку bramqp. Поэтому я с самого начала признаюсь, что могу быть немного предвзятым.: P

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


Ниже перечислены библиотеки amqp, доступные для node.js.

amqplib/ amqp.node - стиль обещаний, все еще обновляемый, выглядит довольно стабильно и легко

bramqp - обеспечивает полный низкоуровневый доступ к функциям AMQP, не рекомендуется для запуска

amqp-coffee - реализация coffeescript похожа на amqp/ node -amqp

amqp/ node -amqp - популярный фиксированный API, который не обновляется так часто, несколько нечетных ошибок, стабильный, но ограниченный


Следующие библиотеки используют одну из предыдущих библиотек, обеспечивая при этом более простой интерфейс или добавление функций

rabbit.js использует amqplib/amqp.node

wascally использует amqplib/amqp.node

amq использует amqplib/amqp.node

amqpea использует bramqp

easy-amqp использует amqp/ node -amqp

rabbus использует wascally


Я также собираюсь добавить node -amqp10 отдельно, так как он может подключаться к серверам amqp 1.0.

Если есть еще что-то, что я должен добавить, просто дайте мне знать.

Ответ 3

Я использовал node-amqp

npm install amqp

Это тот, который рекомендован RabbitMQ, поэтому я его и использовал. Из того, что я делал, этот модуль более сух и читабельен по сравнению с другими библиотеками, которые я видел.

Ответ 4

Я использовал какое-то время. На первый взгляд может показаться, что node -amqp (amqp) более адекватен, но на самом деле у него так много ошибок, и никто их не фиксирует. Для экземпляров

  • Адаптер RabbitMQ MQTT и STOMP должен обеспечивать связь между клиентами, использующими эти 2 протокола с клиентами с использованием AMQP, но node -amqp просто не удается разобрать сообщения, отправленные MQTT или STOMP, в то время как amqp.node(amqplib) может.
  • node -amqp (amqp) реализовал автоматическое повторное подключение и поэтому не генерирует исключений при случайном отключении. Это означает, что вы будете вынуждены использовать встроенное повторное подключение, вы не сможете обнаружить разъединение и обработать его самостоятельно. Однако его повторное подключение всегда удваивает количество подключений. В конечном итоге он исчерпает как клиент, так и сервер. Я бы предпочел написать свою собственную функцию повторного подключения с помощью amqp.node(amqplib).

Я тестировал его с брокером, предоставленным www.robomq.io, это хороший, так что вина должна быть в библиотеке. Однако реализовать идеальную библиотеку в Node.js сложно.

Кстати, вы можете найти полный набор примеров кода, используя amqp.node(amqplib) в 5 сценариях в https://github.com/robomq/robomq.io/tree/master/sdk/AMQP/Node.js и документация на http://robomq.readthedocs.org/en/latest/one-one/#nodejs.

Ответ 5

Просто начал изучать кроликм. Я нашел из других блогов, что ampq.node хорошо принят. Еще один, который я нашел (не тестировался), был изначально. https://github.com/LeanKit-Labs/wascally

Ответ 6

https://github.com/guidesmiths/rascal#rascal тоже стоит упомянуть. Он построен на вершине amqplib и имеет набор полезных функций, таких как логика автоматического повторного подключения, конфигурация на основе подписки/публикации и хорошая поддержка TDD.