Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Key Benefits of MSMQ

Tags:

c#

.net

msmq

I have seen many socket application in which there is use of MSMQ. But when I go in details I think that we can do it without MSMQ also, so I want to know what is key benefit of MSMQ. Why should someone use MSMQ in his own application.

like image 773
funsukvangdu Avatar asked Jan 31 '12 10:01

funsukvangdu


People also ask

What is the purpose of MSMQ?

Message Queuing (MSMQ) technology enables applications running at different times to communicate across heterogeneous networks and systems that may be temporarily offline. Applications send messages to queues and read messages from queues.

What is the benefit of message queue?

Message queues provide communication and coordination for these distributed applications. Message queues can significantly simplify coding of decoupled applications, while improving performance, reliability and scalability. You can also combine message queues with Pub/Sub messaging in a fanout design pattern.

What are the advantages and drawbacks of message queues?

Conclusion. Message queues offer significant advantages over RPCs in distributed systems. Whereas RPCs are synchronous and unreliable, message queues are asynchronous and reliable. They add complexity both to application design and operations, but that complexity can be managed.


1 Answers

MSMQ is a great piece of Windows. It is basically a message-oriented middleware that helps a lot in some software architectures.

This mainly addresses the common use case of asynchronous message processing: you have a service Service1 that communicates (send messages) with another part of your software architecture, say Service2.

Main problem: what if Service2 becomes suddenly unavailable? Will messages be lost? If you use MSMQ it won't: Service1 will send messages into a queue, and Service2 will dequeue when it is available.

MSMQ will resolve following common issues:

  • temporary unavailability of a service: messages are persisted on the disk and will be dequeued when the service becomes available again, so no messages are lost
  • as it's fully asynchronous, it'll help a lot in case of punctual peak load: your Service2 won't die under the heavy load, it'll just dequeue and process messages, one after one

Pros of MSMQ vs another message-oriented middleware:

  • free and built-in (shipped with Windows)
  • light
  • good integration with other Microsoft products (for instance there is the System.Messaging namespace in .Net to deal with MSMQ)
  • monitoring capabilities (using perfmon counters: number of message received per second...)
  • transactional queues
  • persistence on disk so messages are never lost
  • available through the network (remote queues)
like image 178
ken2k Avatar answered Sep 25 '22 01:09

ken2k