Kategorien
Technisches

AMQP und PHP

Disclaimer

Ich schreibe das hier erst mal nur, damit ich selbst einen Überblick bekomme. Das ist also sicher unvollständig und vielleicht nicht ganz richtig.

AMQP

AMQP ist ein Protokoll, mit Hilfe dessen Programme miteinander reden können. Das ist praktisch, wenn man verteilte Systeme hat. Man muss dann nicht mehr irgendwelche Kommandos über SSH ausführen und Dateien per SCP hin- und herschieben oder alles in eine gemeinsame Datenbank schreiben.

Protokoll-Versionen

0.9.1 ist am populärsten, aber es gibt auch schon 1.0, was aber nicht so populär zu sein scheint (warum?)

Server

Da gibt es mehrere:

  • RabbitMQ (wohl sehr Populär, bei Ubuntu Focal dabei)
  • GarageMQ (bei Ubuntu Focal dabei)
  • ZeroMQ
  • ActiveMQ

PHP-Libs

Eigentlich sprechen die alle nur 0.9.1 und rühmen sich darin, besonders gut mit Rabbit zurecht zu kommen.

  • php-amqp ist schnell, klein und als PHP-Extension in C geschrieben und bei Ubuntu focal dabei
  • amqp-lib (langsamer, in php)
  • amqp-bunny (auch gut, in php statt c)

Interop

Das ist wie PHP-PSR eine standardisierte Schnittstelle um auf eine beliebige AMQP-Library (und andere, ähnliche Dienste, die aber ein anderes Protokoll sprechen) zugreifen zu können. Damit ist die Entscheidung für eine bestimmte Lib weniger folgenschwer.

https://github.com/queue-interop/queue-interop