We're here to introduce you to LavinMQ, the new lightweight, easy-to-use message broker that is built to be faster and more approachable than existing options. LavinMQ comes with low RAM requirements, the ability to handle extremely long queues and many connections. It is also built with popular characteristics from other message brokers such as offering a persistent exchange that makes it possible to replay messages.
This blog will help you understand when you should choose LavinMQ in your architecture over RabbitMQ, or just about any other broker out there.
Message queueing in general
LavinMQ is a message broker (message queue) that provides an organized, safe place for messages to wait until another application or part of the system can come along and consume them for processing. Messages (e.g. tasks) sent to the queue wait until the appropriate resources can process them. By acting as the middleman, LavinMQ directs messages to another party that usually has no other job than to manage them.
Read more about message queueing in: A short Guide to Message Queueing
1. LavinMQ requires minimal configuration and is easy to use
For a beginner, existing message brokers can, unfortunately, be difficult to get acquainted with. A lot of basic mistakes are made, simply due to a lack of user knowledge. LavinMQ is built with today’s standards, meaning that messaging should not have to be too complicated. LavinMQ bridges beginner mistakes by simplifying the configuration and usage.
LavinMQ requires minimal configuration so it can be up and running really quickly. A beginner’s guide is available for reference during setup and the LavinMQ community is always there to help when needed. LavinMQ is truly open source but you can get a hosted instance of LavinMQ here at CloudAMQP.
LavinMQ is compatible with the AMQP 0.9.1 protocol (the same protocol used for RabbitMQ) and comes with various clients, platforms, and languages. It is also shipped with a gorgeous manager that makes it easy to monitor and configure queues.
2. LavinMQ has great support for many connections and long queues
Many applications require a lot of simultaneous connections, and this can sometimes be a problem to support. This is not always due to the limits of the broker itself, but rather due to the number of resources used to handle all these connections or long queues.
LavinMQ can support a very high amount of connections. 8,000 connections use only about 400 MB of RAM. Many and long queues are also an option in LavinMQ, where declaring 100,000 queues uses about 100 MB of RAM.
3. LavinMQ is very resource efficient
LavinMQ gives you more bang for the buck by maximizing performance while keeping the footprint on RAM and CPU at a minimum. All routed messages in LavinMQ are written directly to the disk into something called a message store, which is a series of files (segments). A routed message is located in the message store and includes a reference from the queue’s index.
Messages are quickly written to the disk and caching is managed by the OS itself. This boosts performance while keeping the RAM footprint low. Read more about the message store in the LavinMQ documentation.
Enqueueing 10 million messages only uses 80 MB RAM. About 1,600 bindings per second can be made to non-durable queues and about 1,000 bindings per second to durable queues.
4. LavinMQ offers extremely high performance
LavinMQ is the fastest AMQP broker available with a low latency that ensures a smooth user experience.
A single m6g.large EC2 instance, with a GP3 EBS drive (XFS formatted), can sustain about 600,000 messages/s (16-byte msg body, single queue, single producer, single consumer). A single producer can push 1,200,000 msgs/s and, if there are no producers, auto-ack consumers can receive 1,000,000 msgs/s.
5. LavinMQ supports rewindable queues and persistent exchanges
Sometimes you simply want to have the option to consume your message again making rewindable queues a popular feature in message queueing (like in Kafka). This allows for messages to be reread and re-consumed which covers use cases from a wide range of perspectives. LavinMQ has this ability through the Persistent Exchange.
All exchanges in LavinMQ can be marked as persistent exchanges with the argument of x-persist-messages.
Read more in the LavinMQ documentation.
When to consider LavinMQ
Consider LavinMQ if you are looking for a message broker with:
- Minimal configuration
- Easy to understand
- High performance
- Easy to troubleshoot
- Great performance
- Excellent stability
- No restart required for upgrades
- Support for very long queue lengths
- Ability to handle a large number of queues
- Easily deals with very high numbers of connections and channels
- Offers replay/rewindable exchanges
- Option to pause queues
CloudAMQP has over 10 years of experience in hosting, tweaking, and maintaining existing message brokers. The team has solved thousands of use cases for existing message brokers over the years. These lessons over time turned into valuable knowledge about what can be simplified and improved. LavinMQ is built by experienced message queuing developers with the learnings, knowledge, and standards of today.
We are really happy to tell you that LavinMQ is available at CloudAMQP. The service is still in beta, but we are all ready to hear what you think about this new message broker.