何时需要对来自客户端的请求进行排队



我听说服务器可以处理的请求数量是有限制的。

因此,如果来自客户端的请求数量超过了排队请求的人数。

所以我有两个问题:

1当

如何决定是否需要对请求进行排队?如何测量最大的数字?

2 如何

如果排队是不可避免的,那么排队应该在哪里进行呢?

对于使用spring-web-mvc作为框架的J2EE应用程序,我想知道队列应该放在ControllerModel还是DAO中?

3有没有一个想法可以避免排队,但继续提供服务?

首先,你必须在服务器上确定你的限制。这可能是对消息频率的限制,也就是说,你可能被限制为每秒发送10个请求。如果是这样的话,那么你需要统计一下你在一秒钟内发送了多少条消息,然后在你发送请求之前,检查一下你是否会违反这个限制,如果这是真的,那么你必须让线程等待到第二条消息结束。如果不是您的免费发送请求。该线程将从出站消息队列中读取。

如果服务器限制是以另一种方式确定的,即根据其当前负载动态确定的(在您的情况下听起来可能是这样),则必须连续提供请求限制,您必须对其进行处理以确定当前限制。一旦你有了这个限制,你就可以按照第一段中提到的方式处理请求。

至于把队列和相关逻辑放在哪里,我会把它放在控制器中。

我认为没有办法避免排队,你被迫限制你的请求,因此你必须在内部对出站请求进行排队,这样它们就不会丢失,并将在未来的某个时候得到处理。

最新更新