Najlepsza biblioteka klienta PHP dla dostępu do RabbitMQ (AMQP)?

Istnieje Lista klientów PHP na stronie RabbitMQ . Zadaję to pytanie w nadziei, że osoby, które korzystały z któregokolwiek z nich, mogą podzielić się tutaj swoimi doświadczeniami. Np.

  • miałeś jakieś problemy z instalacją?
  • Czy jest stabilny?
  • były jakieś problemy z wydajnością?
  • Jak wygląda dokumentacja / wsparcie?

Nawet jeśli właśnie korzystałeś z jednej z tych bibliotek, podziel się swoimi doświadczeniami.

Dla odniesienia, tutaj są niektórzy z wymienionych klientów:

P. S. wiem, że " najlepiej.."jest " subiektywna" , ale celem tego pytania jest zbieranie doświadczeń i pomóc ludziom podjąć świadomą decyzję o tych bibliotekach AMQP. Proszę nie zamykać tego pytania tylko dlatego, że ma w nim słowo "najlepszy".

P. P. S. używam PHP 5.3 na RHEL 5.

Author: dkamins, 2010-12-10

6 answers

Dla odniesienia, rozszerzenie PECL AMQP i http://php.net/manual/fa/book.amqp.php {[2] } są tym samym, jednym jest pakiet, a drugim dokumentacja pakietu.

Jako opiekun oficjalnego rozszerzenia PHP AMQP jestem trochę stronniczy. Wiele osób używa tego rozszerzenia w środowiskach produkcyjnych o dużej objętości i niskim opóźnieniu, ponieważ jest ono znacznie szybsze niż to napisane w natywnym PHP. Co więcej, ponieważ stale używam tego w mojej pracy, muszę go nadal pracować i pracować do tej pory.

Wadą tego rozszerzenia jest to, że nie jest ono jeszcze dostępne dla Windows, ponieważ biblioteka, od której zależy, jest obecnie przenoszona. Nie ma ETA dla obsługi systemu Windows, ale jak tylko zależności obsługują System Windows, naszym celem jest również przeniesienie rozszerzenia do systemu Windows.

 30
Author: Pieter,
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-02-25 23:43:29

Ta biblioteka wydaje się być żywa i dziedziczy po oryginale z kodu.google:

Https://github.com/videlalvaro/php-amqplib

Są też testy i testy CI.

 6
Author: Tomas Dermisek,
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
2011-12-01 08:45:52

Kilka informacji z pierwszej recenzji:

Https://github.com/tnc/php-amqplib forked http://code.google.com/p/php-amqplib / w nieznanym momencie w przeszłości i nie ma jasnej historii lub pokazać, co zostało zmienione, co powoduje niefortunne rozdrobnienie wysiłków. Wydaje się również, że nie nadąża za poprawkami błędów zastosowanymi do oryginału, z których wiele pojawiło się w ciągu ostatnich kilku miesięcy.

Także http://code.google.com/p/php-amqplib / teraz wydaje się, że nie jest już w aktywnej fazie rozwoju, a zły patch został nałożony ponad miesiąc temu, pozostawiając bagażnik w stanie uszkodzonym. (Wysłałem łatkę, aby to naprawić, ale to zły znak).

 3
Author: dkamins,
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
2010-12-10 21:26:40

Po przyjrzeniu się zarówno php-amqp, jak i wersji PECL, moje wrażenia są takie, że zaimplementowano podstawowe wsparcie dla publikowania i konsumowania wiadomości. Jednak będą działać tylko po wyjęciu z pudełka na platformach *NIX. Będziesz musiał przeskoczyć przez obręcze, aby działały w systemie Windows (co może, ale nie musi być problemem w zależności od platformy programistycznej lub wdrożeniowej).

Bonus: https://github.com/tnc/php-amqplib jest używany w książce MEAP "RabbitMQ w akcji". Czy to będzie mieć jakikolwiek wpływ na jego przyjęcie.

 2
Author: dimdm,
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
2010-12-10 15:53:01

Jest też https://github.com/bkw/php-amqp / które moim zdaniem jest lustrem http://code.google.com/p/php-amqplib/. miałem pewien problem z tym kodem: komunikaty ostrzegawcze podczas normalnej pracy i wszelkiego rodzaju błędy i ostrzeżenia, gdy coś jest nie tak. Kod przyjmuje również słowo podręcznika PHP za pewnik; na przykład, wywołania odczytu socket są sprawdzane tylko pod kątem powrotu błędu, podczas gdy w rzeczywistości odkrywam, że zamknięcie/timeout gniazda może być wskazywane przez dowolny z 4 różnych warunków.

Zaczynam myśleć, że skompilowane rozwiązanie biblioteczne (tj. rozszerzenie PHP) jest najlepszą opcją, zwłaszcza, że są problemy z wątkami i gniazdami, A PHP radzi sobie z obydwoma źle.

 2
Author: aib,
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
2010-12-11 00:39:41

Pracujemy nad AMQP interop . Próbuje zidentyfikować i ustandaryzować wspólny sposób dla programów PHP tworzenia, wysyłania, odbierania i odczytywania wiadomości MQ przez AMQP w celu osiągnięcia interoperacyjności.

Jeśli postawisz na niego zakład, możesz zacząć od dowolnego transportu kompatybilnego z interopem. Nadal będziesz w stanie to zmienić w przyszłości, nie jesteś zamknięty.

Obecnie obsługujemy enqueue/amqp-ext oraz enqueue/amqp-lib. Pierwszy działa na rozszerzeniu php amqp gdzie inny przyjmuje phpamqplib.
 0
Author: Maksim Kotlyar,
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-08-02 07:50:35