使用RabbitMQ从ASP.net MVC 4消费AMQP消息

use*_*283 5 rabbitmq asp.net-mvc-4

假设我想使用RabbitMQ从ASP.net MVC 4中使用AMQP消息.我在System.Web.HttpContext.Current.Application中存储一个对象,它在内部使用BackgroundWorker实例来监听消息(监听器在Global.asax.cs中创建)

这是实现此操作的好方法还是应该使用静态类/单例?我对ASP.net MVC缺乏经验,所以我不确定.也许ASP.net MVC 4不是最好的平台选择?你会推荐什么?

目标是能够监控/记录消息流量,从Web界面中随意终止/创建/配置消费者.

这是我的第一个stackoverflow帖子,因为我相信良好的研究.但是,这次我想听听别人的意见,thx :)

Mik*_*low 4

在我看来,ASP.NET 应用程序是一个糟糕的 RabbitMQ 订阅者。将订阅者实现为 Windows 服务会更好。

  1. Phil Haack 的这篇优秀文章给出了一些充分的理由,说明为什么在任何严肃的服务中使用 BackgroundWorker 时应该三思而后行。
  2. 这意味着您可以独立于 Web 应用程序来监控和维护您的订阅者。您可以使用 Windows 为您提供的所有开箱即用工具(任务监视器、性能监视​​器)来了解您的服务的行为方式。
  3. 您可以独立于 Web 应用程序来扩展订阅者。您可能只需要一个 Web 应用程序实例,但需要两个订阅者。将它们作为单独的进程可以为您提供更细粒度的控制。