我有一个 MVC 和 WebAPI 应用程序,需要将用户执行的活动记录回我的数据库。这几乎总是一次插入到少于 5 列的表中(即很少有数据通过网络)。我目前使用的数据接口是Entity Framework 6
每隔一段时间,我就会有大量用户需要记录他们执行了一项活动。在这种情况下,“大量”可能是每秒几百个请求。这通常最多只会持续几分钟。其余时间,我看到网站的流量非常可控。
当流量激增时,我的一些客户端会收到超时错误,因为在服务器将数据插入数据库之前页面没有完成加载。现在,用户不需要将数据实际插入数据库就可以继续使用应用程序,因此我可以将这些请求缓存在本地某处,然后再批量插入它们。
ASP.NET MVC 是否有任何好的解决方案来缓冲传入的请求数据,然后每隔几秒将它们批量插入数据库?
至于我的环境,我有几台服务器在负载平衡的 Web Farm 中运行 Server 2012 R2。如果可能的话,我宁愿保持无状态,因为用户可能会根据请求访问不同的服务器。