Enterprise applications typically share data with other peer applications and provide a
unified set of functionality. The communication across applications is
facilitated by messaging systems which holds producers and consumers
loosely coupled. The advantage of messaging system is that it doesn’t
warrant both sender and receiver to be available at the same time to
communicate with each other and also ensures flexible,reliable and
active delivery of messages across the applications. There has been a
flurry of messaging systems over the past two decades from different
vendors ranging from Microsoft to IBM. RabbitMQ is a recent player in
the middleware to join this race.
RabbitMQ is different
from traditional messaging systems that it is free to use and comes with
an optional commercial support . It is a multi-protocol, portable
messaging system which could well be the game changer in next
generation’s enterprise applications. Its integration capabilities with
Spring framework makes it more alluring for the developer community as
they migrate their existing applications to private and public cloud. Here are some of the aspects of RabbitMQ which makes it unique amidst other messaging systems,
- Market leader in AMQP
– RabbitMQ, with its hundreds of production deployments and its
increasing penetration into the Linux market along with widespread
adoption in the cloud (Amazon,Engineyard et al) has clearly emerged as a
market leader in AMQP. RabbitMQ with its .Net edition is the most
deployed AMQP broker in Windows.
- Clustering and High Availability –
RabbitMQ supports both activepassive and activeactive (from version
2.6.0) modes of operation making it more reliable and fault tolerant as
an enterprise messaging system. Clustering RabbitMQ is very simple which
doesn’t warrant any load balancer or any software component whereas one
of the nodes manages the master queue and distribute the messages
across the slaves.
- Lower cost of management and maintenance – With
just 12k lines of code and the core engine being written in Erlang/OTP
which is known for its use in highly scalable telcos, RabbitMQ is
capable of lowering the cost of management and maintenance drastically.
- Support across multiple platforms – RabbitMQ
supports multiple platforms .This helps a lot of developers as most
often their development and deployment are in different platforms.They
also support wide range of protocols like HTTP,STOMP,SMTP and more.
good news from us!!. As a part of VMware vFabric family, RabbitMQ
will now be supported by ManageEngine Applications Manager in a forthcoming release. The coalesce of RabbitMQ monitoring with VMware vFabric tc server monitoring will offer a deeper insight into performance of the applications. And for those who are curious, here is a sneak peek into what’s cooking in Applications Manager pertaining to RabbitMQ monitoring .
Queued Messages And Message Rates
huge number of messages queued up in RabbitMQ server could be an
indication that the consumer is unable to process the messages at the
same rate as the producer or it is also possible that one of the consumer
might have gone down while the producer is still publishing the
messages. It is important to identify this quickly as huge number of
messages could crash the RabbitMQ server.
the socket descriptors utilization is high , it may lead to performance
bottleneck and it is also possible that some of the subsequent
connections may get timed out.
Message rates of Queues
The performance of the messaging queues can be improved with the aid of the historical reports generated .
If there is
a network congestion, it is possible to zero-in on the connection which is choking the bandwidth .
We believe the support for RabbitMQ along with VMware vFabric tc Server will further augment our monitoring capabilities for VMware virtualization infrastructure. If you are already using RabbitMQ and have any suggestions or feedback for this feature, please drop in a mail to firstname.lastname@example.org
The original article/video can be found at First look into Applications Manager’s RabbitMQ monitoring