hi, i am wondering about should i choose Akka or RabbitMQ in message queue. I see maybe two of them can be message queue, but i dont know difference about performance of them. And Akka is only for JVM programming. Right ?
At high-level, both Akka & RabbitMQ use message queues. But, they differ in terms of where do the source and destination entities live.
RabbitMQ is an IPC mechanism between two processes (JVM or non-JVM). Whereas, Whereas, an Akka application consists of actors within a JVM. It is a better way of writing highly concurrent applications compared to the multi-threaded OO approach.
I have not explored all the components of Akka. I think Akka HTTP could be used as IPC between two JVM processes. I welcome other forum users to comment.
Akka is a general purpose toolkit based on the actor model for building concurrent and distributed applications. We also have a complementing model for async/non-blocking stream processing in Akka Stream (built on top of actors).
RabbitMQ is a message broker/queue with support for a set of protocols for producing and consuming messages from other processes.
You could build something like RabbitMQ with Akka, but you would have to design and build it yourself using actors or streams and solve all kinds of problem that the developers of RabbitMQ and other flavour of message broker have already solved.
But could also design and build an infinite amount of other things that are not a message queue with Akka that you could not build with only a message broker.
If what you need is an overlap of the two, we have a AMQP connector in Alpakka for consuming or submitting messages that can be used with RabbitMQ, or the Alpakka Kafka connector for Kafka which is another popular message broker.
Hi, can you share me some feature only in RabbitMQ but Akka can’t do it ?