我看到许多socket应用程序使用MSMQ.但是当我详细介绍时,我认为我们可以在没有MSMQ的情况下做到这一点,所以我想知道什么是MSMQ的主要优点.为什么有人在他自己的应用程序中使用MSMQ.
解决方法
MSMQ是一个伟大的
Windows.它基本上是一个
message-oriented middleware,可以帮助很多软件架构.
这主要针对异步消息处理的常见用例:您有一个服务Service1与Service2的另一部分进行通信(发送消息),说Service2.
主要问题:如果Service2突然无法使用?邮件会丢失吗?
如果使用MSMQ,则不会:Service1将消息发送到队列中,Service2将在可用时出队.
MSMQ将解决以下常见问题:
>服务暂时不可用:邮件持久存储在磁盘上,并在服务再次可用时出现,所以没有消息丢失
>因为它是完全异步的,它会帮助很多,如果准时峰值负载:您的Service2将不会在沉重的负载下死亡,它将出现并处理消息,一个接一个
MSMQ与另一个面向消息的中间件的优势:
>免费内置(随Windows提供)>光>与其他Microsoft产品的良好集成(例如.Net中的System.Messaging命名空间处理MSMQ)>监控功能(使用perfmon计数器:每秒收到的消息数…)>事务队列>在磁盘上持久化,所以消息永远不会丢失>通过网络可用(远程队列)