我正在考虑使用 MSMQ 作为在我即将进行的项目中执行异步执行的解决方案。我想知道使用 WCF 和 MassTransit 等框架甚至手写 MSMQ 客户端来放置/读取 MSMQ 任务之间的区别。
基本上,应用程序将是几个网站(内部通过 LAN 或外部通过 Internet)通过服务层(无论是 WCF 还是普通 Web 服务)读取/写入数据。然后这个服务层将做以下两件事之一: 1. 将数据写入数据库 2. 和/或通过将消息放入队列来触发后台进程。3.显然它也可以从数据库中检索数据。队列另一端的小代理(一个windows服务)会监控队列并根据任务命令执行。
与 RPC 或分布式执行等相比,这种架构将非常容易扩展(添加更多队列和代理)并且易于实现。并且代理处理不需要是实时的。并且代理和服务层是独立的应用程序,除了它们共享公共域对象和存储库等。
你怎么看?欢迎针对上述要求提出架构建议。谢谢!