Frage

Ich versuche in meinen Kopf zu kriegen AMQP.Es sieht toll aus für inter-Maschine (cluster, LAN, WAN) für die Kommunikation zwischen Anwendungen, aber ich bin mir nicht sicher, ob es angemessen ist (in der Architektur, und die aktuelle Umsetzung AGB) für die Nutzung als software-bus, in einer Maschine.

Würde es Wert sein, ziehen Sie sich eine aktuelle high performance message passing framework, um Sie zu ersetzen mit AMQP, oder ist diese nicht in der gleiche Falle, wie RPC durch das verwischen der Unterscheidung zwischen lokalen und nicht-lokalen Kommunikation?

Ich bin auch misstrauisch gegenüber den Auswirkungen auf die Leistung des mit einem WAN-Technologie für intra-Maschine-Kommunikation, auch wenn dies mehr für die Umsetzung Sorge, als die Architektur.

Krieg Geschichten würde werden geschätzt.

War es hilfreich?

Lösung

AMQP ist nicht ein RPC-framework.Es liefert die Bausteine, um Modell-Dinge wie shared queues, RPCs, pubsub etc.aber es ist nicht vorschreiben irgendeiner bestimmten Weise zu verwenden.

Wenn Sie möchten, partitionieren Sie Ihre Bewerbung (was es verteilbar auf dem Weg) und verbinden Sie Sie zusammen mit AMQP ich denke, es ist die richtige Technologie.Möglicherweise gibt es schnellere alternativen, aber wohl keiner so generisch wie AMQP.

Andere Tipps

AMQP ist eine Spezifikation, so würde man Äpfel mit Orangen wirklich werden zu vergleichen. Es gibt nicht so viele Produktions bereit AMQP Anbieter gibt wirklich; keiner der großen Messaging-Anbietern oder Anbieter unterstützen AMQP zum Zeitpunkt des Schreibens (zB IBM, Tibco, Sonic, BEA, Oracle, SwiftMQ, MS, Apache ActiveMQ, OpenMQ von Sun) - so werden alle verfügbaren AMQP Anbieter sind ziemlich neu <. / p>

Also würde ich empfehlen, was AMQP Anbieter zu vergleichen in Sie daran interessiert sind mit Ihrer Nachricht Rahmen übergeben. Es gibt keinen Grund, etwas aus, dass Rippen funktioniert gut, nur weil der Weg, es liest und schreibt Bytes an eine Steckdose:)

Der AMQP Standard wird immer ausgereifter und einige der haarigen Probleme löst, die anderen Messaging-Standards wie JMS geplagt hat. Um Ihre Frage, ob es sich lohnt, eine bestehende Lösung zu ersetzen, würde ich sagen, es hängt davon ab. Ich würde sehr skeptisch sein, da vermutlich das System bereits arbeitet, in der Produktion und hoch performant.

Wenn Sie Probleme haben, wie:

  • Die Interoperabilität nicht funktioniert
  • Kann nicht leicht skalieren
  • Die Leistung ist nicht gut genug, um
  • Die aktuelle Messaging-Lösung ist teuer (zu halten)

Sie sollten die erforderlichen Arbeiten untersuchen und die Vorteile analysieren genauer. Wenn Sie bereits zufrieden sind, das Ersetzen eines Messaging-Framework ist nicht auf Investitionen zurück gehen.

Als Grundlage für ein zuverlässiges, äußerst flexibel (in Bezug auf Messaging-Muster) kann es für viele Messaging-Szenarien verwendet werden, sowohl intra-Maschine (das heißt Inter-Prozess) und Inter-Netzwerk. Es kann von Null bis riesig, mit hohen Bandbreite, Multi-Netzwerk-Systemen der ganzen Weg skaliert werden.

Ich bin zur Evaluierung es für ein kleines, aber relativ komplex in der Nähe von Echtzeit-System, wo wir kümmern uns nicht, wie weit die Nachrichten reisen oder wer / was (im Grunde;) verbrauchen sie. Wenn ein Verbraucher auf der gleichen Maschine sitzt soll es so sein. Ich würde geben Sie ihm gehen und sehen, was Sie daraus machen. Wenn Sie wollen zusammen ein Prototyp-System klopfen, verwenden Python und die Pika Bibliothek.

AMQP sieht eher wie ein zuverlässiges Transport-Middleware-Angebot für SOA als intern verwendet, um etwas zu werden.

Wenn Sie in den Leistungen in einem Intra-Maschine Szenario in erster Linie daran interessiert sind, dann ist die Frage weniger um AMQP (das ist nur eine Draht-Protokoll-Ebene) als über die Implementierung sollten Sie versuchen.

Durch die Latenzzeit durch das Netz eingeführt zu entfernen, werden Sie wahrscheinlich viel empfindlicher auf die rohen Leistungen der verschiedenen Umsetzung sein. Deshalb würde ich bei Produkten in C ++ wie Qpid oder Zeromq umgesetzt sehen.

Qpid leicht erreichen kann 400 000 Meldungen / Sekunde (mit Nachrichten von 1024 Bytes) auf ein paar anständige Hardware (Quad-Core). Zeromq wird wahrscheinlich viel besser durchführen, weil Sie Peer-Kanäle während Qpid-to-Peer haben können, ist eine Broker-Architektur (die einen Schritt hatte).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top