使用微软消息队列实现C#进程间通信

http://tech.ddvip.com   2007年11月20日    社区交流

内容摘要:顾名思义,微软消息队列(MSMQ)是一种给队列发送消息以便稍后进行处理的方法。消息由一个“Producer”(生产者)应用程序发送出去,再由一个“Consumer”(消费者)应用程序返回。

  这段代码和上面代码的最明显区别在于它使用了XmlFormatter。它实际是可选的,列表L中的代码也可用列表M中的代码代替。

  列表M

  //Instantiate a new message.
  
  System.Messaging.Message queueMessage =
  
  new System.Messaging.Message();
  
  //Set the priority to Highest.
  
  queueMessage.Priority = MessagePriority.Highest;
  
  //Create our MessageContent object.
  
  MessageContent messageContent =
  
  newMessageContent("Hello world - IMPORTANT!");
  
  //Set the body as the messageContent object.
  
  queueMessage.Body = messageContent;
  
  //Send the message.
  
  queue.Send(queueMessage, "HIGH PRIORITY");

  这段代码执行和列表L中的代码相同的任务,但代码更少。

  应用

  输入消费者请求是MSMQ功能的一个简单实例。消费者提出一个请求,由一个面向消费者的应用程序将它送交给消息队列。向队列发送请求后,它会向消费者送出一个确认(acknowledgement)。

  然后,一个独立的进程从队列中提取消息,并运行任何所需的业务逻辑(business logic)。完成业务逻辑后,处理系统将向另一个队列提交一个响应。接下来,面向消费者的应用程序从队列中提取这个响应,并给消费者返回一个响应。

  这种类型的配置能够加快面向消费者的应用程序的速度,使其迅速做出反应,同时在一个内部系统中完成大量处理工作。这样还可以将请求处理分散到多台内部机器上,提供可扩展性。

  下载样本项目

  欲获得本文显示的所有代码,请下载相关的实例项目。项目中包含你从一个队列中读或写消息所需的所有代码。

责编:豆豆技术应用

正在加载评论...