Debian环境下JSP并发处理实践
一 架构与线程模型
二 Tomcat线程池与连接器配置
<!-- 共享线程池 -->
<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="50"
maxQueueSize="100"/>
<!-- HTTP Connector 使用 NIO2 -->
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
executor="tomcatThreadPool"/>
<!-- 可选:HTTP/2(需要 TLS/SSL 配置) -->
<Connector port="8443"
protocol="org.apache.coyote.http2.Http2Protocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
type="JKS"/>
</SSLHostConfig>
</Connector>
三 JVM与操作系统调优
四 前端反向代理与负载均衡
upstream tomcat_cluster {
server 127.0.0.1:8080;
server 192.168.1.138:8080;
# 可选:least_conn; 最少连接策略
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://tomcat_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
五 应用层并发与监控实践