Win a copy of Java EE 8 High Performance this week in the Java/Jakarta EE forum!

Alvaro Videla

+ Follow
since May 08, 2012
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Alvaro Videla


RabbitMQ has many ways of implementing fault tolerance depending on the actual needs of your applications.

You can do simple RabbitMQ clustering, where you end up with various RabbitMQ brokers acting together to server requests. In this case all the queue/exchange meta-information is shared across servers, but not queue contents.

Another option is to leverage "Mirrored Queues" aka "Ha Queues". In this case you declare queues as mirrored and then they will reside at various servers in your cluster.

We explain both kinds of clustering from chapter 5 till 7 of the book.

On chapter 8 we introduce the Management Plugin that will provide you with a Management Web UI for RabbitMQ so you could control the broker from your browser. The advantage of the Management Plugin is that it provides a REST API so you can easily script broker management as we explain in Chapter 9 and 10. In the last chapter we explain consumer monitoring more in detail.

Another feature that the Management Plugin provides is the ability to see metrics related to message ingress/egress, connected clients, number of queues/exchanges, and so on.

Hello everybody! Alvaro here from the other side of the pond. I hope we engage in some very nice discussions!

The fact that RabbitMQ is implemented in Erlang is anecdotal (yes, there are very good reasons why it is written in Erlang as we explain in Chapter 1), but basically what you do care about as a RabbitMQ user is how to interact from your current tech stack with RabbitMQ.

In the case of Java you have the Official Java AMQP Client:

I say official because for many other languages there are community maintained RabbitMQ clients (i.e. AMQP clients).

So for Java and .Net particularly you have AMQP Clients developed by the RabbitMQ developers.

To compare ActiveMQ vs. HorentQ you will have to go to very specific use cases, and with messaging is quite difficult to write proper scientific benchmarks

What you do have in RabbitMQ is a very big community in case you need help. Why? Because by using AMQP RabbitMQ embraces many languages: Java, .Net, Python, Ruby, PHP, etc., etc. So you have people from very different "walks of life" stressing the product to their very particular needs which enriches the ecosystem. So you have people doing simple image scaling with Ruby, or companies like Joyent that monitor their clouds with RabbitMQ, to financial institutions and betting systems using RabbitMQ as well. For example today I learnt that Chef, the system integrations framework, uses RabbitMQ for their servers.