Ich habe die letzte Woche damit verbracht, mich eingehend mit den Akka-Dokumenten zu befassen und endlich zu verstehen, was Darstellersysteme sind und welche Probleme sie lösen.
Mein Verständnis (und meine Erfahrung mit) traditionellen JMS / AMQP-Nachrichtenbrokern ist, dass sie Folgendes bieten:
- Asynchrone Verarbeitung zwischen Erzeuger und Verbraucher; und
- Garantie für die Zustellung von Nachrichten, einschließlich Persistenz, Wiederholungsversuchen und Ausweichversuchen
Aber bietet Akka dies nicht ohne die gesamte erforderliche Infrastruktur und den operativen Aufwand?
- In Akka ist die gesamte Kommunikation der Akteure asynchron und nicht blockierend. und
- Bestehen Sie in Akka,
SupervisorStrategies
um einen erneuten Versuch, ein Zurückgreifen und eine Eskalation durchzuführen. Akteure können so konfiguriert werden, dass sie für praktisch jede Art von Geschäft bestehen bleiben , wenn dies ebenfalls erforderlich ist.
Ich frage mich also: Wenn meine App Akka verwendet, muss ich jemals JMS / AMQP-Broker (z. B. ActiveMQ, RabbitMQ, Kafka) ins Bild setzen? Mit anderen Worten, gibt es jemals einen Anwendungsfall, bei dem eine neue Akka-basierte App auch die Einführung eines neuen JMS / AMQP-Broker-Clusters rechtfertigen würde ? Warum oder warum nicht?
Das einzige Argument wäre, dass sich meine Akka-App vielleicht in ein anderes System integrieren muss. Aber in diesem Fall ermöglicht das Akka-Camel- Modul Akka, auf die umfassende, fast unendliche Liste der Integrationsmöglichkeiten von Camel zuzugreifen (TCP, FTP, ZeroMQ, die Liste geht weiter und weiter ...).
Gedanken?