如何在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是否有类似情况