我有在线评估应用程序,在登录和提交测试期间大量点击,当CPU使用率为100%并且许多请求全部丢失时,服务器无法处理所有请求,我想将所有请求排队并发送一个请求一段时间内部,所以请求不应该丢失并处理服务器后端的所有请求
答案 0 :(得分:1)
我认为您的问题是您正在处理两种非常不同类型的请求 - 登录和检查结果,并且您正在尝试通过相同的渠道处理它们。
这两个请求具有非常不同的特征:
从逻辑上讲,它们是如此不同,以至于您在单个频道中拥有的是两种不同的服务(即使目前它们捆绑在一起)。它们几乎没有任何共同之处。
我会认真考虑将单个频道拆分为两个频道,并在两个不同的服务器上理想地运行它们。另外,我会将入站排队添加到考试结果频道。这会带来很多好处:
因为您的服务非常不同,所以这样做会更容易。您应该能够轻松地分离代码库。您可以使用MSMQ(可能通过WCF netMsmqBinding)来处理请求的排队。
希望这会对你有所帮助。