我有一个有两个接口的 webApplication。一个用于配置,第二个用于警报。如何确定 HTTP 请求的优先级,以便警报具有更高的优先级?
我正在考虑向 tomcat 添加一个连接器并更改线程优先级,但是我如何将每个请求定向到它的 servlet?
谢谢
在多线程环境中,优先级似乎是一个奇怪的问题。我不相信 servlet 规范中有任何内容可以满足您的需求。
线程优先级似乎是我唯一的解决方案。Tomcat 允许您指定执行器线程池中每个线程的优先级:http: //tomcat.apache.org/tomcat-7.0-doc/config/executor.html
您需要以某种方式将每个接口的请求路由到适当的连接器。这需要在 Tomcat 之外完成,可能使用 Apache 或 nginx。如果你有一个负载均衡器,那可能是进行这种路由的一个有趣的地方。
您还可以为更高优先级的接口提供更大的线程池,而不是弄乱线程优先级。但是我不太确定您要优先考虑什么。
收到请求后设置线程优先级怎么样?
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
另一种观点 - 以不同的优先级外部处理您的请求:例如。MySql 请求中的 LOW_PRIORITY 或 HIGH_PRIORITY。