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?
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).
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ć.
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.
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,
- 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.
- 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 .
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
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.
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