2016-10-11 5 views
1

Ist JMS keine bevorzugte Methode zur Nachrichtenübermittlung für Microservices, die in Cloud Foundry eingesetzt werden? Wenn ja, können Sie bitte erläutern, warum das nicht so ist?JMS Messaging in Cloud Foundry

Antwort

1

Die kanonische Antwort: Cloud Foundry hat keine Meinungen darüber, wie Ihre Anwendungen kommunizieren.

Es gibt viele Gründe, warum Sie eine REST-basierte Punkt-zu-Punkt-Kommunikation anstelle von Nachrichtenbrokern verwenden möchten. Eine Sache, die Sie in Betracht ziehen sollten, ist, dass die Apps, die Sie auf Cloud Foundry ausführen, ephemer sind und an jedem beliebigen Punkt beendet und neu erstellt werden können.

Nachrichtenwarteschlangentechnologien werden tendenziell so verwendet, dass Menschen Annahmen über Dinge wie "genau einmal" Semantik machen, die in einer verteilten Umgebung physisch unmöglich zu garantieren sind. Verteilte Transaktionen werden auch in einer verteilten Umgebung schwieriger, und da es mehr Netzwerk-Hops gibt, gibt es mehr Unsicherheit im System und eine erhöhte Wahrscheinlichkeit, dass Fehler auftreten.

Es gibt viel mehr, was man dazu sagen könnte, aber man sieht oft nicht, dass JMS mit Cloud Native Apps diskutiert wird, weil diese Technologien oft mit Designmustern verbunden sind, die nicht Cloud-freundlich sind es gibt nichts, was sie innerlich so macht.

+0

Dank @EngineerBetter. Ich sehe jedoch, dass rabbitmq in den PCF-Marktplatz integriert ist und auch Apps, die in CF eingesetzt werden, Kafka benutzt. Ist nicht das, was Sie erwähnt haben, auch für diese anwendbar? Gibt es einen Vorteil von JMS zu AMQP für native Cloud-Anwendungen? –

+0

Pivotal bietet RabbitMQ an (ich habe an diesem Angebot für eine kurze Zeit gearbeitet) und die Verwendung von Kafka zur Einnahme ist ein übliches Muster. Die Verwendung von Kafka für die Kommunikation zwischen den Mikrosystemen ist etwas, das ich allerdings nicht oft sehe, und man könnte argumentieren, dass die RabbitMQ-Unterstützung da ist, weil die Leute danach gefragt haben, nicht weil es eine großartige Idee für Microservices ist. Es ist ein breites Thema. Persönlich mag ich die zeitliche Entkopplung von Nachrichtenbrokern, und ich denke, dass _most_ Leute mit ihnen durchkommen können, anstatt eine komplizierte Anordnung von Netflix-Implementierungen. –

+0

Danke @EngineerBetter! –