Serviceorientierte Architektur - AMQP oder HTTP

Ein bisschen Hintergrund.

Sehr große monolithische Django-Applikation. Alle Komponenten verwenden dieselbe Datenbank. Wir müssen die Dienste trennen, damit wir einige Teile des Systems unabhängig voneinander aktualisieren können, ohne den Rest zu beeinträchtigen.

Wir verwenden RabbitMQ als Broker für Sellerie.

Im Moment haben wir zwei Möglichkeiten:

HTTP-Dienste, die eine REST-Schnittstelle verwenden.JSONRPC über AMQP an einen Ereignisschleifendienst

Mein Team tendiert eher zu HTTP, weil es damit vertraut ist, aber ich denke, die Vorteile der Verwendung von RPC gegenüber AMQP überwiegen bei weitem.

AMQP bietet uns die Möglichkeit, den Lastausgleich und die Hochverfügbarkeit mit garantierten Nachrichtenübermittlungen auf einfache Weise zu erweitern.

Während wir bei HTTP Client-HTTP-Wrapper erstellen müssen, um mit den REST-Schnittstellen zu arbeiten, müssen wir einen Load Balancer einsetzen und diese Infrastruktur einrichten, um HA usw. zu haben.

Mit AMQP kann ich nur eine andere Instanz des Dienstes erzeugen. Sie stellt eine Verbindung mit derselben Warteschlange wie die anderen Instanzen sowie mit bam, HA und Load Balancing her.

Vermisse ich etwas mit meinen Gedanken zu AMQP?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage