it_user618963 - PeerSpot reviewer
Senior Software Specialist at a security firm with 1,001-5,000 employees
Vendor
SSL, clustering, and integrates with LDAP.

What is most valuable?

  • Does SSL (security)
  • Does clustering (stability)
  • Integrates with LDAP (management)
  • Automatically resends data when a consumer fails
  • Automatically routes data
  • Excellent spring boot integration
  • Multiple programming languages provide excellent integration

How has it helped my organization?

With RabbitMQ cluster servicing micro-services, we don't have any downtime and we don't lose any data. We can update and/or upgrade the micro-services without downtime.

What needs improvement?

  • You cannot edit shovels other than by recreating them.
  • Routing of data could be more enhanced with a nice GUI. ("IF header.contains(this.thing) THEN data.goesTo(cluster_02)").
  • In its current form, you have to recreate a shovel with the same parameters except for the one you want to change. You end up doing more or less a delete/create.
  • There is no HTML form where you can click on a shovel and adjust the wrong parameter.
  • If I click on a shovel, I get on a page that lists the shovel, but it is not editable. You have to create a shovel and then delete the old one with all the same parameters, except for the one you want to change.
  • Temporarily stopping shovels is also not possible in the web interface. I do not know if the CLI version can do it, but if somebody wants to temporarily stop the incoming flow, he or she has to delete the shovel and then recreate it afterwards. This is annoying, to say the least.
  • RabbitMQ has to be started before one can define exchanges, queues, and even users with rabbitmqctl. See https://www.rabbitmq.com/man/r...
  • This is no problem if one lives in the monolithic server environment. However, if one wanted to make a RabbitMQ Docker-container with a pre-defined set of exchanges, queues, users, and shovels, you have to literally jump start the server. You would have to configure it in the Docker build phase. You would do it like this in the Dockerfile: RUN service start rabbitmq-server && wait 30 && rabbitmqctl add_user mike mikespassword.

For how long have I used the solution?

I have used RabbitMQ for four years.

Buyer's Guide
VMware RabbitMQ
April 2024
Learn what your peers think about VMware RabbitMQ. Get advice and tips from experienced pros sharing their opinions. Updated: April 2024.
769,976 professionals have used our research since 2012.

What do I think about the stability of the solution?

We did have stability issues in the past. After shutting it down, the cluster did not start until we deleted some corrupted file. This occurred more than a year ago.

What do I think about the scalability of the solution?

It works as expected, i.e., flawless.

How are customer service and support?

We have not needed any technical support as of yet.

Which solution did I use previously and why did I switch?

We did not evaluate any previous solutions.

How was the initial setup?

Just enter this command: $ apt-get install rabbitmq-server

What's my experience with pricing, setup cost, and licensing?

It’s open source with paid support.

Which other solutions did I evaluate?

We looked at Kafka, but we needed the routing as well.

What other advice do I have?

Start it in Docker and use Java Spring Boot or Node.JS with amqplib to connect to it. It has transformed how I think data should flow in an organization.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user575835 - PeerSpot reviewer
Mid Level Software Engineer at a tech services company with 501-1,000 employees
Consultant
The exchange and out-of-the-box queuing are a couple of our favorite features.

What is most valuable?

One of our favorite features is the exchange. The queuing out-of-the-box is awesome. Also, due to the clustering, our system was highly available.

How has it helped my organization?

It made our system more scalable, resilient and easy to maintain.

What needs improvement?

Support for Windows systems needs to improve. This could move Microsoft shops away from it. We provisioned Linux servers specifically for our RabbitMQ servers.

RabbitMQ clusters run on two kinds of protocols: AMQP and HTTP. The one we were using was AMQP (this requires all your cluster nodes to be in the same network partition). With our Windows servers, every time we used to run Puppet, RabbitMQ used to think it got partitioned. This problem never occurred in our Linux cluster.

All this is subjective. Maybe we were doing something wrong. There are a few other things which they have listed here: https://www.rabbitmq.com/windows-quirks.html Overall, I don't think it's RabbitMQ's fault because Windows can be a problematic OS at times.

So, I would recommend using Linux servers instead of Windows servers for a RabbitMQ cluster.

For how long have I used the solution?

We have used RabbitMQ for 1 year now.

What do I think about the stability of the solution?

Other than the fact that our Windows cluster would experience network partitions for no reason (could be due to Puppet), we had no other stability issues. We stress-tested the servers, as well, and they responded really well.

What do I think about the scalability of the solution?

Its really easy to scale.

How are customer service and technical support?

We never used technical support.

Which solution did I use previously and why did I switch?

We had a monolith application. This was our solution to have more of a micro-service architecture

How was the initial setup?

Initial setup was decently elaborate. The documentation is good but there are a few quirks in the case of Windows. The RabbitMQ processes would be running but the status would show that it is down. The solution was to stop and restart the process. This only happened on Windows.

Which other solutions did I evaluate?

We also evaluated ZeroMQ and EasyNetQ.

What other advice do I have?

It is a really good solution if you require queuing with the competing consumer and multicast routing out of the box. It’s a bit too elaborate if you need just simple message queuing.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Buyer's Guide
VMware RabbitMQ
April 2024
Learn what your peers think about VMware RabbitMQ. Get advice and tips from experienced pros sharing their opinions. Updated: April 2024.
769,976 professionals have used our research since 2012.
it_user624792 - PeerSpot reviewer
Senior Software Engineer at a hospitality company with 1,001-5,000 employees
Vendor
Complex message routing enables us to replicate product data for user acceptance testing.

What is most valuable?

Complex message routing makes it very easy to replicate product data for user acceptance testing which was required in our user case.

How has it helped my organization?

Applying message queues in general has helped my company, BuzzNumber, to scale easily with the load.

What needs improvement?

The High Availability feature is not really reliable. It also took a really long time to restart the box when there were a lot of messages in the queue.

As mentioned on its document page, it cannot tolerate network partition well.
I suffered a network parturition with 3 nodes cluster and lost all data. So with our cloud provider, we can’t rely on pause_minority and seems like auto_heal is a better fit for us.

Apart from that, RabbitMQ doesn’t seem to be stable when it has high RAM usage. Especially when you have millions of queue items in a queue and a node crashes, adding a new node to such cluster will be a pain as the replication takes forever.

For how long have I used the solution?

We have used the solution for two years.

What do I think about the stability of the solution?

We encountered an issue with stability. It didn't work very well with millions of messages in the queue when you add a new node to the cluster.

What do I think about the scalability of the solution?

There were no specific issues with scalability except the issue of adding a new node to the cluster.

How are customer service and technical support?

We used the open source version with community support, so we didn't contact technical support.

Which solution did I use previously and why did I switch?

We previously used MSMQ. Apparently, it is not as good as RabbitMQ in terms of the features offered.

How was the initial setup?

The setup is easy.

What's my experience with pricing, setup cost, and licensing?

This is not applicable, as we were using the free version.

Which other solutions did I evaluate?

I am not aware of other evaluated options.

What other advice do I have?

I would advise potential customers to make sure it works with your architecture, scale plan, and load. There are other alternatives.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user660027 - PeerSpot reviewer
Software Engineer at a marketing services firm with 51-200 employees
Vendor
It is our main microservices connection queue. I would like to see better crisis management.
Pros and Cons
  • "The product's reliability is the most valuable feature."
  • "The product has to improve the crisis management, especially in memory issues."

How has it helped my organization?

We use it as our main microservices connection queue.

What is most valuable?

The product's reliability is the most valuable feature.

What needs improvement?

  • The product has to improve the crisis management, especially in memory issues.
  • Its clustering feature also needs improvement.
  • I would simplify the configuration. I would add default configuration that prevents the queue system from filling out the server storage.
  • I would also decouple the queue from the RabbitMQ Management, so that the queues won't get stuck.
  • Clustering and clustering crisis management: When the cluster falls, there needs to be a simple way to recover it. It currently suffers from a recover problem.

What do I think about the stability of the solution?

In the regular state, there were no stability issues. When the queues are full, only complicated pre-configuration can help you so that you don't lose all of your crisis messages.

What do I think about the scalability of the solution?

There were some scalability issues. There is no scalable queue. The cluster only supports redirections.

How are customer service and technical support?

The documentation needs to be improved. We don't use any human technical support.

Which solution did I use previously and why did I switch?

We have used DBus and ZeroMQ. We wanted something more reliable and simple, so we switched over to this tool.

How was the initial setup?

The setup was okay, but there are some configurations that one needs to do by oneself. There are many dependencies as well.

What's my experience with pricing, setup cost, and licensing?

It is an open source solution.

What other advice do I have?

Do many stress tests.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user643737 - PeerSpot reviewer
it_user643737Senior Developer/Architect at a tech services company with 51-200 employees
Consultant

I found your comment about clustering interesting, because it echoes my own experience of RabbitMQ clusters in production (with mirrored / HA queues). What problems did you have, specifically?

it_user622737 - PeerSpot reviewer
Software architect & back-end engineer at a tech services company
Real User
You can redirect asynchronous tasks outside of the frontal web servers.

What is most valuable?

  • AMQP protocol
  • The simplicity to set up a cluster
  • All patterns available (Topic, Routing, RPC, etc.)
  • Enables you to provide a response to most problems encountered

How has it helped my organization?

I introduced RabbitMQ to my company to bring about more scalability and redirect asynchronous tasks outside of the frontal web servers.

  • Scalability was provided by the possibility to add on workers behind RabbitMQ. Asynchronous is the keyword for the message broker.
  • I started to split our monolith website and remove all the heavy processes from our web servers.
  • Dispatching the workload correctly helped to increase the response time.
  • The frontal web server must focus on replying and not on doing reports/PDFs. You must have a dedicated server for this.
  • The solution is written in Erlang. Erlang was built for telecommunication systems. One of its assets is that it can upgrade a service in production without downtime. That’s a good point!

What needs improvement?

  • Have more features such as being able to replay a sequence of what was received.
  • Handle more messages per second.
  • Consume fewer resources: NATS can handle millions of requests within a few minutes. RabbitMQ handles hundreds of requests with the same resources (RAM). Finding a way to be more efficient in this aspect would open them up to other markets, like IoT or embedded systems.

For how long have I used the solution?

I have used this solution for around two years.

What do I think about the stability of the solution?

There were no stability issues.

What do I think about the scalability of the solution?

There were no scalability issues.

How is customer service and technical support?

The documentation from the internet is good.

How was the initial setup?

The setup was pretty straightforward.

Which other solutions did I evaluate?

I have looked at Apache ActiveMQ and Kafka.

What other advice do I have?

This product is fantastic. Before you use it, make sure you analyze your real needs. In the world of message brokers, there is no single solution. Today, you have solutions that are specialized for specific use cases.

For instance, you have the NATS solution which is another great message broker tool. It is focused on handling a tremendous number of topics and messages per second and it consumes few resources.

However, it’s not as resilient as Kafka. Kafka can replay all the messages received from a date range. However, this one can handle fewer topics.

NATS is written in Golang. Golang is the Go programming language, which I love.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user560979 - PeerSpot reviewer
Principal Software Engineer at a tech company with 501-1,000 employees
Vendor
You can create a consumer for a queue and listen to the queue in real-time.

What is most valuable?

It has solved issues such as queue processing, real-time data processing and decrease count of Cron jobs.

The management of Cron jobs is very hard for me. If you are using RabbitMQ, you may not need a Cron job since you can create a consumer for a queue and listen to the queue in real-time. For example, you need to send an email for your new members but you want to do this from your software. The reason being if you encounter an SMTP error, you should handle it or sending an email from your membership activity can take about 5-10 seconds. If you don't use RabbitMQ, you need to create a Cron job and check for new members to send an email to them. But, if you use RabbitMQ, you do not need a Cron job. You can send a message to your queue and consume it in real-time and then send the email.

How has it helped my organization?

I have used this solution for changing stock of products in an e-commerce project. We update the stock of products from RabbitMQ. Some of our clients can change the stock of a product, i.e., either increase or decrease it. They send the stock count to RabbitMQ as a message and our e-commerce platform changes the stock when it gets the message. Consequently, we update the database, cache, search engine service and so on.

There are too many advantages of using this solution. You can scale your processes and update your data in a nearly synchronous way.

What needs improvement?

RabbitMQ needs 2 additional features:

  • It is lacking a good dashboard on the web interface; maybe they can develop a dashboard for monitoring.
  • There is no alert mechanism. For example, sometimes consumers may be killed or the input messages in queues are greater than the consumed messages. Thus, I would like them to define a rule for alert; maybe they can develop an alert mechanism.

For how long have I used the solution?

I have used this product for three or four years.

What do I think about the stability of the solution?

I have not encountered any stability issues.

What do I think about the scalability of the solution?

I have not encountered any scalability issues either.

How are customer service and technical support?

Since it is open source, you can resolve your problems either from forums or Stack Overflow in regards to RabbitMQ.

Which solution did I use previously and why did I switch?

We have used different solutions before. We have tried MySQL as a queue and it was terrible.

How was the initial setup?

It is not complex.

However, if you try sharding or cluster, it is just a little complex because of Erlang.

What about the implementation team?

It is open source.

Which other solutions did I evaluate?

I did not look into other solutions.

What other advice do I have?

I would recommend this product. It is great and resolves a lot of problems.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user566901 - PeerSpot reviewer
Graduate Teaching Assistant at a university with 1,001-5,000 employees
Vendor
Supports real-time delivery of sensor data in different topic abstractions. I would like to see better handling of rolled off data from the queue.

What is most valuable?

RabbitMQ is good in its real-time capability of delivering the sensor data in different topic abstractions. It is quite easy to setup in our sensor network system which involves data monitor agents across geographically distributed organizations.

How has it helped my organization?

This tool made our research process easier and allowed our administration (monitoring) process to happen at the same time. We created different queues for different use cases of the same streaming data.

What needs improvement?

The solution can be improved in terms of how to handle the rolled off data from the queue. Currently, if the consumer does not consume a queue, the data in the queue will eventually overflow and be discarded.

For how long have I used the solution?

I have used this solution for about a year.

What do I think about the stability of the solution?

Stability-wise, the consumer needs to configure with caution to make sure the queues never overflow. I have experienced data loss in scenarios in which consumer cases were configured incorrectly.

What do I think about the scalability of the solution?

It would be nice if it could produce automatic load balancing when the number of brokers scales up.

How is customer service and technical support?

The technical support is generally good in terms of being a nice and active user forum that has good documentation.

How was the initial setup?

The initial setup is not very complex. We just needed to set up several broker instances running on different physical nodes to prevent unavailability. When we needed to add more nodes for more data and queues at a later time, it created a bit of load imbalance issues.

What's my experience with pricing, setup cost, and licensing?

I would suggest that the vendor keep it the same way that it is now.

Which other solutions did I evaluate?

We chose this solution around 2010, so there weren’t many options at the time. We evaluated the native JMS method and it didn't scale up well.

What other advice do I have?

Keep in mind that the queue structure and the consumer configuration need to keep up with the queuing speed. I would suggest researching other options if you need bulk data publish/subscribe in persistent data storage, e.g., Apache Kafka.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Senior Application Developer at a computer software company with 51-200 employees
Real User
The ability to create durable queues improved reliability and performance.

What is most valuable?

We find authentication, performance, and durable messaging the most valuable features. Due to the nature of my use case, performance and security were of the highest priority and were the main reason I chose RabbitMQ messaging frameworks.

Over time, the most useful feature became the ability to create durable queues, which increased reliability and also boosted performance.

What needs improvement?

I would like to see improvements in fluent configuration. I'd also like to see more support for code-first environment configuration. We do a lot of this stuff as part of our deployment process via command line scripts, but I'd rather have a specific API to target rabbitmq.config and rabbitmq-env.config so that configuration could scale with my environments more easily. If more of that was baked into the RabbitMQ management HTTP API, it would help.

For how long have I used the solution?

We have been using RabbitMQ for about 2 years.

What do I think about the stability of the solution?

We did not have any issues with stability.

What do I think about the scalability of the solution?

We had no issues with stability. Exactly the opposite! It actually blew me away how flexible a framework it is. It’s a very elegant solution.

How is customer service and technical support?

I never used technical support.

What other advice do I have?

I've had the most success using NServiceBus over MassTransit. Look there for .NET Devs.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user