构建可伸缩的ASP.NET MVC Web应用程序

gso*_*ski 7 c# asp.net queue asp.net-mvc scaling

我目前正在使用c#构建ASP.NET MVC Web应用程序.

我想确保构建这个应用程序,以便将来可以扩展,而无需进行重大的重新分解.

我非常热衷于使用某种队列将任何写入发布到我的数据库库,并且有一个进程可以异步轮询该队列以执行更新.将此数据发回数据库后,客户端需要使用新信息进行更新.这意味着根据在服务器上执行的业务规则,将数据写回数据库的过程可能需要一段时间.

我的问题是从客户端\浏览器角度处理更新的最佳方法.

我正在考虑将数据发布回服务器并将其添加到队列中并立即向客户端发送响应,然后以某个频率轮询以获取更新的数据.任何最佳实践或模式都将受到赞赏.

另外,在从数据库读取数据方面,您会建议使用任何特定技术,或者直接从数据库中读取是否足够我的方案.

更新 思想我会发布一个更新,因为它已经有一段时间了.我们实际上最终使用的是Windows Azure,但该解决方案适用于其他平台.

我们最终做的是使用Windows Azure Queue将消息\命令发布到.这是一个非常快速的过程并立即返回.然后我们有一个worker角色,它在另一个线程上处理这些消息.这允许我们在理论上最小化web角色上的任何db写入\更新,从而允许我们更容易地扩展.

我们处理通过电子邮件通知用户,甚至根据我们正在处理的数据类型静默地通知用户.

Dav*_*vid 2

不确定这是否有帮助,但为什么不每隔 30 秒自动刷新一次页面呢?有时这就是新闻源在体育网站上的工作方式,即页面每 x 分钟更新一次。

<meta http-equiv="refresh" content="120;url=index.aspx">