MSMQ 的主要优点

发布于 2025-01-01 03:35:15 字数 1431 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

〃温暖了心ぐ 2025-01-08 03:35:15

MSMQ 是 Windows 的一个很棒的部分。它基本上是一个面向消息的中间件,对某些软件架构有很大帮助。

这主要解决异步消息处理的常见用例:您有一个服务 Service1,它与软件架构的另一部分(例如 Service2)进行通信(发送消息)。

主要问题:如果 Service2 突然不可用怎么办?消息会丢失吗?
如果您使用 MSMQ,则不会:Service1 会将消息发送到队列中,而 Service2 将在可用时出队。

MSMQ 将解决以下常见问题:

  • 服务暂时不可用:消息保留在磁盘上,当服务再次可用时将出列,因此不会丢失任何消息
  • 因为它是完全异步的,它会在准时峰值负载的情况下有很大帮助:您的Service2不会在重负载下死亡,它只会一个接一个地出列和处理消息

MSMQ的优点与另一个面向消息的中间件:

  • 免费且内置(随 Windows 一起提供)
  • 与其他 Microsoft 产品良好
  • 集成(例如 .Net 中有 System.Messaging 命名空间来处理 MSMQ)
  • 监控功能(使用 perfmon 计数器:每秒接收的消息数...)
  • 事务队列
  • 持久化在磁盘上,因此消息永远不会丢失
  • 通过网络可用(远程队列)

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文