There are so many queuing solutions available, both commercial and open source, that it is not funny. Some of the queue solutions come in-built with Microsoft products such as MSMQ, SQL Server Service Broker, Azure Service Bus, Service Bus for Windows.
Like all other technology spaces that are crowded with similar solutions, each product/solution has its strength and weaknesses in this case too. Well, that makes things easier for us, the confused souls, in choosing the most appropriate option for ourselves. An interesting point to note is that all of these solutions provide functionalities that are similar in nature e.g. reliability of message delivery, transactional sanctity, poison message handling, journal. Here is my understanding of the three very viable options for a queue based implementation -
MSMQ - Possibly one of the oldest queuing solutions available on Windows ecosystem. It has evolved over the years and is perfect for cases when you want to maintain reliability of message delivery across servers that perform different jobs specially when one (or all) system falls under "occasionally offline" category. There is even a feature that allows MSMQ to be exposed over HTTP/HTTPS.
SQL Server Service Broker - SQL Server Service Broker is perfect choice for the cases where you need messages to be processed in a sequence inside SQL Server itself. Of course it can be used otherwise too.
Azure Service Bus/Service Bus for Windows - Both are great for the cases where two systems need to talk despite the network challenges e.g. Firewall across organizations etc. Both Azure Service Bus and Service Bus for Windows allow communication over HTTP and TCP. Also, they have Fabric Controller as their core component and therefore can easily scale with very little downtime. Not to forget that 1) it supports AMQP standard and therefore can easily be consumed from applications that run on other platforms 2) it supports Topics (publish/subscribe) in addition to the regular queues to allow multiple subscribers for an item 3) generally supports many messaging patterns 4) Supports better security mechanism via ACS/STS.
It was really a nice post and i was really impressed by reading this
ReplyDeleteAzure Online Training Bangalore
wonderful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
ReplyDeleteoracle training in chennai
oracle training institute in chennai
oracle training in bangalore
oracle training in hyderabad
oracle training
oracle online training
hadoop training in chennai
hadoop training in bangalore
Excellent post, Smart Little Keys
ReplyDelete