使用MSMQ实现可靠的分布式消息传递
1 引言
随着局域网(LAN)和互联网的普及,分布式应用的概念已经成为现实。如今,应用程序常规地利用远程机器来执行任务和提供服务。然而,分布式应用程序比非分布式应用程序有更多的故障点——服务器可能离线,网络可能过载,或者服务器的计划维护或升级也可能给分布式应用程序带来问题。应用程序需要能够在分布式资源不可用时继续运行,这正是微软消息队列(MSMQ)的消息基础设施所提供的。
MSMQ处理分布式应用程序中机器间的通信,它承担了巨大的责任。所有通信(消息)必须保证送达,必须满足安全需求,消息必须被记录,同时还需要发送送达确认。通过使用MSMQ技术,可以使应用程序更加健壮和可扩展。
2 MSMQ的工作原理
MSMQ使用队列来存储消息,这些消息为应用程序之间提供了一种通信机制。队列可以是公共的也可以是私有的。公共队列可以被网络上的所有计算机共享,而私有队列只能由队列所在的机器使用。消息可以被看作是一个包含数据以及描述发送数据类型、优先级、安全需求、确认信息和时间信息的信封。应用程序可以向它们有访问权限的任何队列发送和接收消息。
2.1 队列的类型
队列类型 | 描述 |
---|---|
公共队列 | 可以被网络上的所有计算机共享 |
私有队列 | 只能在同一台机器上使用 |