Ich benutze RabbitMQ + Spring AMQP + Guavas EventBus, um Schauspieler-wie Boten unter Verwendung Guava's EventBus for pattern matching die empfangenen Nachrichten automatisch zu registrieren.
Die Ähnlichkeit zu Spring AMQP und Akka ist unheimlich. Spring AMQPs SimpleMessageListenerContainer + MessageListener entspricht ziemlich einem Schauspieler.
jedoch für alle Absichten und Zwecke RabbitMQ ist leistungsstarke als Akka, dass es viele Client Implementierungen in verschiedenen Sprachen hat, Persistenz bietet (Durable Warteschlangen), topologischen Routing und steckbare QoS-Algorithmen .
Das ist gesagt Akka ist viel bequemer und in der Theorie Akka kann alle oben genannten und einige Leute haben Erweiterungen geschrieben, aber die meisten verwenden nur Akka und dann haben Akka die Nachrichten über RabbitMQ liefern. Auch der Spring AMQP SimpleMessageListener-Container ist ziemlich schwer und es ist unklar, was passieren würde, wenn Sie ein paar Millionen davon erstellen würden.
Im Nachhinein würde ich die Verwendung von Akka zu RabbbitMQ statt Spring AMQP für zukünftige Projekte in Betracht ziehen.
RabbitMQ ist ein AMQP-Broker, d.h. ein Transport. Akka ist ein Nebenläufigkeits-/Skalierbarkeits-/Fehlertoleranz-Toolkit. Sie können AMQP als Akka Actor-Postfächer oder als Akka-Remoting-Transport verwenden. –
Danke für die Antwort, nur um zu bestätigen, wenn ich mehrere Java-Anwendungen habe, ich will, dass sie kommunizieren, ich brauche rabbitmq. Zum Beispiel 2 getrennte Spiele 2 Apps, separate Maschinen, akka kann nicht der verbindende Rahmen sein, ich brauche jms oder rabbitmq, ist das korrekt? –
Sie können JVMs mit Remote-Actors "beitreten", sie kommen mit einem Standardtransport, der auf Netty basiert. –