大家在生产中的前面 java tomcat 应用程序中遇到了一个难题。此应用软件接收来自管理 ui rest 启用及其启用这种 rest 节点的许多外部客户的流量。
难题有两种要求,即根据 GET 的调用和 POST 启用。问题在于,根据非关键 GET 的启用必须很长的时间,进而堵塞服务器并导致应用软件超时。因而,大家现在想要一种基于 URL 和请求方法来分离事务并分离实行的办法,便于慢速事项的延迟不会影响重要事务。 zvvq好,好zvvq
解决方法我们决定最先识别并分离 nginx 中的重要事务。最后我们在 tomcat 中创立了两个独立的 Executor,它们通过 tomcat 中独立的连接器公布。这使我们能够将重要流量跳转到一个执行器,将非关键流量跳转到另一个执行器。这使我们能够为每个连接器设置不同的acceptorThreadCount值。以及通过有着不同的 minThreads 和 maxThreads 值来调节执行器进程。此变更仅是配备变更,不保证编码中的任何变更。 内容来自samhan
让我们通过一个小实例应用软件来讨论完成。 内容来自zvvq
nginx.conf变更 内容来自zvvq
活动{} 内容来自zvvq,别采集哟
http{
zvvq
上游front_upstream_ritic{ 内容来自samhan666
服务器tomcat:8080;
}
上游front_upstream_non_ritic{ zvvq
服务器tomcat:8081; 内容来自samhan
}
内容来自zvvq
投射$request_method$upstream{ 内容来自zvvq
默认front_upstream_non_ritic; zvvq
POSTfront_upstream_ritic; 内容来自zvvq
} copyright zvvq
服务器{ zvvq.cn
听9090; 内容来自zvvq,别采集哟
部位〜^ /前面应用软件/ api / v1 / myresource /(关键路径1 |关键路径2 |关键路径3)${ 本文来自zvvq
proxy_pass_request_body打开;
proxy_pass_request_headers打开; zvvq.cn
proxy_set_header主机$host:8080;
zvvq.cn
proxy_passhttp://$upstream$uri$is_args$args;
proxy_http_版本 1.1;
zvvq好,好zvvq
proxy_set_header联接
}
zvvq.cn