재인쇄할 출처를 표시해 주세요: http://blog.csdn.net/l1028386804/article/details/48272857
오늘은 Tomcat의 클러스터링 및 로드 밸런싱 구현을 위해 여러분과 협력하겠습니다. 및 nginx
1. Tomcat 클러스터 구성 포트 계획
참고: 이 포트는 동일한 시스템에서 2개의 Tomcat을 시작하는 데 사용됩니다. 반복됩니다. 하나의 머신만 배포하는 경우 1개의 Tomcat의 포트는 동일할 수 있습니다.
|
종료 | AJP<Engine name="Catalina" defaultHost="localhost"> |
http <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> |
클러스터 수신기 |
|||||||||||||||
1 |
8005 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOpti <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessi notifyListeners/> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" <!--可写你自己的ip地址--> port="5001" autoBind="100" selectorTimeout="5000" maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster> |
8009 | 8080 | 5001 | |||||||||||||||
2 | 8015 |
8019 | 80815002 |
1. 클러스터 구성
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <distributable /> (在倒数第二行增加这个代码才能实现session同步复制功能) </web-app>은 server.xml에서 수정됩니다. 은 다음을 수행합니다. 다음으로 수정:
set JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Djava.awt.headless=true"
JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Djava.awt.headless=true"동일한 머신: 수신 노드 포트:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" />이 다릅니다.
<Connector port="8080" protocol="HTTP/1.1" c redirectPort="8443" />
<Connector port="8080" executor="tomcatThreadPool" protocol="HTTP/1.1" c enableLookups="false" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Connector port="8009" executor="tomcatThreadPool" c enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />세션 동기 복제 설정을 실제로 구현하려면 tomcat의 web.xml 구성 매개변수를 수정해야 합니다.
<Connector port="8080" protocol="HTTP/1.1" c redirectPort="8443" />2. 최적화:
<Connector port="8080" protocol="HTTP/1.1" maxThreads="500" acceptCount="50" c enableLookups="false" redirectPort="8443" />1. 메모리 최적화 구성
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />1) Windows:
<Connector port="8009" maxThreads="500" c enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
2 ) Linux
2. 기타 최적화된 구성:
을
2) 또는
을
maxThreads
acceptCount
minSpareThreads
connectionTimeout
upstream tomcat { server 192.168.100.50:8080 weight=1; server 192.168.100.50:8081 weight=1; }enableLookups
location / { root html; index index.html index.htm; }
location / { #root html; #index index.html index.htm; proxy_pass http://tomcat6; }