- RabbitMQ (AMQP)
- Pros:
- Can setup retry logic using spring’s retry template
- Supports dynamic queue creation.
- JSON API to retrieve list and manage queues
- Web UI for queue management
- Very fast (10x ActiveMQ)
- Spring supported through Spring-AMQP package
- Large community support
- Can configure broker with exchanges/queues to manage performance and route messages based on content
- supports STOMP protocol
- Cons:
- Broker is implemented using Erlang and not Java (impacts setup, config)
- AMQP is still new
- Pros:
- ActiveMQ (JMS)
- Pros:
- Can configure connection factory to handle retry logic (delays/redelivery)
- Supports dynamic queue creation.
- Web UI for queue management
- Can retrieve a list of queues through JMX
- Spring supported with Spring-JMS
- Large community support
- Broker is configurable through XML
- Cons:
- Not as fast as RabbitMQ
- Messages must be sent to either queues or topics
- Doesn’t appear to be completely stable.
- Pros:
- Qpid (AMQP)
- Pros:
- Java implementation
- Durable queues, persistent messages using Derby DB
- Windows .NET SDK
- Cons:
- No queue management UI, must use command line, or JMX
- Not completely supported by Spring. Can use Spring-AMQP, but not completely supported. NOTE: could use supported spring rabbit libraries, but would need to be using the same version of AMQP as RabbitMQ
- Little community support
- AMQP is still new
- Pros:
- HornetQ (JMS)
- Pros:
- Can be installed as a standalone server or with JBoss
- REST api to manage queues
- XML configuration
- Cons:
- Recommended to use Java 6, although there are special client jars for Java5 (ran into issues using Java5 library)
- Pros:
- ZeroMQ (AMQP)
- Pros:
- Very fast
- Cons:
- Queues are not durable
- Messages are not persistent
- Not really a message broker
- Pros:
- WMQ (JMS)
- Pros:
- Spring support
- Can dynamically create listeners
- Desktop UI management
- Can view messages in UI
- Cons:
- Does not support dynamic queue creation (out of the box).
- Does not support consumer backoff (retry delay)
- Unless using version 7 or newer, wmq libraries does not support a way to get a current list of queues. We would need to keep track of the queues ourselves.
- Pros:
Showing posts with label ZeroMQ. Show all posts
Showing posts with label ZeroMQ. Show all posts
Tuesday, July 3, 2012
Message Broker Comparison
Recently I have been given the task to find a new message broker. I was given a large list of vague requirements such as it needs to be fast, persistant, durable, etc. Below is a list that I have put together that describes a few brokers that I have researched. As I started to research more and more, I found that these are just a few of the more popular message brokers out of a very large and growing list. I you have experiance with any of these queues, or any other queues that are not mentioned here, feel free to share your thoughts.
Subscribe to:
Posts (Atom)