Yo uso RabbitMQ + Spring AMQP + Guava EventBus para registrar automáticamente mensajeros tipo Actor usando Guava's EventBus for pattern matching los mensajes recibidos.
La similitud con Spring AMQP y Akka es asombrosa. Spring AMQP's SimpleMessageListenerContainer + MessageListener es prácticamente equivalente a un Actor.
Sin embargo, para todos los efectos RabbitMQ es más poderosa de Akka, ya que tiene muchos clientes implementaciones en diferentes idiomas, proporciona persistencia (colas duraderos), enrutamiento topológica y algoritmos de QoS enchufables .
Dicho esto Akka es mucho más conveniente y, en teoría, Akka puede hacer todo lo anterior y algunas personas han escrito extensiones, pero la mayoría solo usa Akka y luego hace que Akka entregue los mensajes en RabbitMQ. Además, el contenedor Spring AMQP SimpleMessageListener es bastante pesado y no está claro qué pasaría si crearas un par de millones de ellos.
En retrospectiva, consideraría usar Akka para RabbbitMQ en lugar de Spring AMQP para proyectos futuros.
RabbitMQ es un intermediario de AMQP, es decir, un transporte. Akka es un conjunto de herramientas de simultaneidad/escalabilidad/tolerancia a fallas. Puede usar AMQP como buzones Akka Actor o como transporte remoto Akka. –
Gracias por la respuesta, solo para clérigo, si tengo múltiples aplicaciones java, quiero que se comuniquen, necesitaré rabbitmq. Por ejemplo, 2 juegos separados 2 aplicaciones, máquinas separadas, Akka no puede ser el marco de unión, necesitaré jms o rabbitmq, ¿es correcto? –
Puede "unir" JVM utilizando actores remotos, vienen con un transporte predeterminado que se basa en Netty. –