【发布时间】:2011-10-31 12:49:07
【问题描述】:
我们有一个 ASP.NET MVC Web 应用程序,它允许用户将消息发布到网站上。除此之外,用户还可以在发布消息时将该消息内容联合到其他第 3 方系统。
目前这是同步完成的,所以当他们点击“发布”按钮时,我们会将他们的消息持久化到数据库中,然后依次通知每个 3rd 方系统。我们需要提高此操作的可扩展性和持久性,因此我想以某种方式使操作的通知方面异步。
我能想到以下几种可能
- 将第 3 方消息保存到数据库表中,并让一些工作进程从表中读取项目并发布到第 3 方系统。
- 使用诸如 nServiceBus 或 RabbitMQ 之类的“适当”消息队列(我对这两种方法都没有经验)
有没有更好的方法来做到这一点?我特别感兴趣的是如何通知用户消息已正确联合(因为它是异步的)以及如何处理多次重试失败,此时发送者应该放弃。
谢谢
詹姆斯
【问题讨论】:
标签: asp.net-mvc notifications queue