amqp vs amqplib-który węzeł.biblioteka klienta js amqp jest lepsza?

Jakie są różnice między tymi bibliotekami klientów amqp? Który z nich jest najbardziej polecany? Jakie są główne różnice?

Author: Elad, 2013-11-21

6 answers

Polecam amqp.node i bramqp nad node-amqp. node-amqp ma dużo błędów i jest słabo utrzymany, a ukrywa koncepcję "kanału", która wprowadza wiele problemów dla serwerów rabbitmq (ponieważ nigdy nie są zamknięte).

 45
Author: Carl Hörberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-22 01:47:01

To ja napisałem bibliotekę bramqp. Więc przyznam od początku, że mogę być trochę stronniczy. : P

Moim zdaniem, dopóki znasz spec, bramqp powinno działać dobrze. W przeciwnym razie użyj amqp.node


Poniżej znajdują się biblioteki amqp dostępne dla node.js.

Amqplib / amqp.węzeł - styl promise, wciąż aktualizowany, wygląda dość stabilnie i łatwo

Bramqp - zapewnia pełną niski poziom dostępu do funkcji AMQP, nie zaleca się rozpoczynania

Amqp-kawa - implementacja coffeescript podobna do amqp / node-amqp

Amqp / node-amqp - popularne, poprawione API, Nie aktualizowane tak często, kilka dziwnych błędów, stabilne, ale ograniczone


Następujące biblioteki używają jednej z poprzednich bibliotek, zapewniając jednocześnie łatwiejszy w użyciu interfejs lub dodając funkcje

Królik.js zastosowania amqplib/amqp.node

Wascally używa amqplib/amqp.node

Amq używa amqplib/amqp.node

Amqpea używa bramqp

Easy-amqp używa amqp / node-amqp

Rabbus używa wascally


Dodam jeszczenode-amqp10 oddzielnie, ponieważ może łączyć się z serwerami amqp 1.0.

Jeśli są jeszcze jakieś rzeczy, które powinienem dodać, po prostu daj mi znać.

 42
Author: bakkerthehacker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-13 02:52:16

Używam node-amqp

npm install amqp

To jest ten zalecany przez RabbitMQ dlatego go używam. Z tego, co robiłem, ten moduł jest bardziej suchy i czytelny w porównaniu do innych bibliotek, które widziałem.

 2
Author: sheldonk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-21 19:03:00

Używałem obu przez jakiś czas. Na pierwszy rzut oka może się wydawać, że node-amqp (amqp) jest bardziej odpowiedni, ale w rzeczywistości ma tak wiele błędów i nikt ich nie naprawia. Dla instancji,

  1. Adapter RabbitMQ MQTT i stomp powinien umożliwiać komunikację pomiędzy klientami używającymi tych 2 protokołów z klientami używającymi AMQP, ale node-amqp po prostu nie przetwarza wiadomości wysyłanych przez MQTT lub STOMP, podczas gdy amqp.node (amqplib) can.
  2. node-amqp (amqp) ma zaimplementowane automatyczne ponowne łączenie i tak nie wyrzuć wyjątki po przypadkowym rozłączeniu. Oznacza to, że będziesz zmuszony do korzystania z wbudowanego ponownego połączenia, nie możesz wykryć rozłączenia i obsłużyć go samodzielnie. Jednak jego ponowne połączenie zawsze podwoi liczbę połączeń. Ostatecznie wyczerpie zarówno Klienta, jak i serwer. Wolałbym kodować własną funkcję ponownego łączenia z amqp.node (amqplib).

Przetestowałem go z brokerem dostarczonym przez www.robomq.io, jest dobry więc winą powinna być Biblioteka. Realizacja doskonałego Biblioteka w węźle.js jest jednak twardy.

Przy okazji, można znaleźć pełny zestaw przykładowego kodu przy użyciu amqp.node (amqplib) w 5 scenariuszach przy https://github.com/robomq/robomq.io/tree/master/sdk/AMQP/Node.js i dokumentacja na http://robomq.readthedocs.org/en/latest/one-one/#nodejs .

 2
Author: EaminZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-10 17:21:02

Sam zacząłem uczyć się rabbitmq. Znalazłem z innych blogów, że ampq.węzeł jest dobrze akceptowany. Kolejny, który znalazłem (nie testowany) jest z wascally. https://github.com/LeanKit-Labs/wascally

 0
Author: Flexpadawan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-10 20:33:11

Https://github.com/guidesmiths/rascal#rascal warto wspomnieć też. Jest zbudowany na bazie amqplib i ma zestaw przydatnych funkcji, takich jak logika automatycznego ponownego połączenia, subskrypcja / Publikacja oparta na konfiguracji i dobre wsparcie dla TDD.

 0
Author: cressie176,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-15 17:47:46