Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在tomcat/JavaWeb服务器世界中限制每个路由的最大线程数_Java_Multithreading_Rest_Tomcat_Servlet 3.0 - Fatal编程技术网

如何在tomcat/JavaWeb服务器世界中限制每个路由的最大线程数

如何在tomcat/JavaWeb服务器世界中限制每个路由的最大线程数,java,multithreading,rest,tomcat,servlet-3.0,Java,Multithreading,Rest,Tomcat,Servlet 3.0,假设我实现了几个Rest端点。 现在,我想确保一个特定的路由,比如说POST/log最多只能获得2个线程,而其他重要路由则获得其余的线程 在加载期间,我们不希望线程池中有太多线程投入到POST/log路由中。我们不关心POST/log路线 [1] 如何在tomcat中实现这一点? [2] 是否有其他方法来实现这一点,而不是在web服务器上中继? PS:我确实在Servlet中找到了SingleThreadModel接口,但这已经被弃用了 编辑: 我不想添加一个过滤器和计数请求,一旦超过限制,就

假设我实现了几个
Rest
端点。
现在,我想确保一个特定的路由,比如说
POST/log
最多只能获得2个线程,而其他重要路由则获得其余的
线程

在加载期间,我们不希望线程池中有太多线程投入到
POST/log
路由中。我们不关心
POST/log
路线

[1] 如何在tomcat中实现这一点?

[2] 是否有其他方法来实现这一点,而不是在web服务器上中继?


PS:我确实在Servlet中找到了
SingleThreadModel接口,但这已经被弃用了

编辑:

我不想添加一个过滤器和计数请求,一旦超过限制,就删除请求,因为在这种情况下,JVM仍将承担切换线程上下文的任务,只是运行我的计数请求和删除请求

理想情况下,像
NODE.JS
的事件循环这样的东西会被引用,其中只有一个线程在处理请求,其他线程在排队


据我所知,实现这一点的一个关键方法是使用不同的连接器,为每个连接器路由和分配线程池。但我正在寻找一种开发友好型连接器。

设置并适当标记您想要限制的url模式的优先级。

您需要的是基本的服务质量,您可以将资源分配给某些URI

这可以通过Servlet过滤器来实现,是的,自Servlet3.0以来HTTP请求可以排队


例如,为此目的提供了QoSFilter,请参阅。

默认情况下,所有请求都有一个共享连接池。如果您只允许2个请求,您希望如何处理额外请求?只需拒绝?排队等待某个数字,然后拒绝。tomcat是否有类似情况