일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 갤럭시북 사운드카드 설치
- ubuntu-server
- 앞으로 가기
- OSX
- 미국은 또 시궁창
- 사운드 설치
- aws
- 내장모니터끄기
- 클러스터링
- 유투브 광고 우회
- IOS
- 공기청정기
- 광고없이 보기
- 코로나
- 미세먼지
- lb
- 크롬
- java
- PM 2.5
- 포켓몬고
- 로드밸런싱
- 마스크
- 포켓몬고 플러스
- 포켓몬 고
- Docker
- Linux
- 초미세먼지
- ㅂㅅ 같은 삼성 노트북
- 노트북 모니터 끄기
- tomcat
- Today
- Total
살며사랑하며
Tomcat 5에서 클러스터링과 로드밸렁싱-실전적용 본문
실 전산에서 적용한 방법으로 Fail-Over도 지원이 된다.
가중치 라운드 로빈방식으로 할당비중치를 줄수 있으나 다만 문제는 톰켓이 완전히 죽지 않은 상태... 즉 웹 어플리케이션이 GC나 스타팅이 되지 않은 상태에도 할당이 된다....
PS)당연하겠지만.. 톰켓자체가 죽지 않는 상태이니 그럴꺼란 생각이 든다
Apache2.0 + Tomcat 5.5.27 + jk-connect
1.workers.properties
# workers.properties
worker.list=tomcatlb,tomcat6,tomcat7
worker.tomcatlb.type=lb
worker.tomcatlb.balanced_workers=tomcat6,tomcat7
worker.tomcatlb.sticky_session=1
worker.tomcatlb.local_worker_only=1
worker.tomcat6.port=1901
worker.tomcat6.host=localhost
worker.tomcat6.type=ajp13
worker.tomcat6.lbfactor=1
worker.tomcat6.local_worker=1
worker.tomcat6.socket_timeout=60
worker.tomcat6.socket_keepalive=true
#worker.tomcat6.cachesize=10
# END workers.properties
#tomcat7.tomcat-test.com
worker.tomcat7.port=1902
worker.tomcat7.host=localhost
worker.tomcat7.type=ajp13
worker.tomcat7.lbfactor=1
worker.tomcat7.local_worker=1
worker.tomcat7.socket_timeout=60
worker.tomcat7.socket_keepalive=true
2.http.conf
ServerAdmin root@tomcat-test.com
DocumentRoot $APACHE2/htdocs
#ErrorDocument 404 /jsp/base/404.jsp
ServerName tomcat6.tomcat-test.com
ErrorLog "|/usr/local/sbin/cronolog $APACHE2/logs/%Y%m/tomcat6.tomcat-test.com-error_log-%Y%m%d"
CustomLog "|/usr/local/sbin/cronolog $APACHE2/logs/%Y%m/tomcat6.tomcat-test.com-access_log-%Y%m%d" common
JkMount /jsp/* tomcatlb
JkMount /servlet/* tomcatlb
JkMount /admin/* tomcatlb
JkMount /manager/* tomcatlb
JkMount /probe/* tomcat6
JkMount /probe2/* tomcat7
#JkMount /otherworker/*.jsp remoteworker
클러스터링 스케줄링
1)라운드-로빈(round-robin)
라운드-로빈 방식은 로드밸런서에 들어오는 요청 패킷들을 차례대로 실제 서버에 할당하는 방식이 다. 이 방식에서 실제 서버의 현재 부하 상황 등은 고려되지 않는다. 단지 차례대로 할당할 뿐이다. 하지만, 이렇게 하더라도 로드밸런싱을 위해 이전에 사용되던 라운드-로빈 DNS 방식에 의해 서버를 할당하는 방식에 비해서는 우수한데, DNS의 경우는 한번 서버가 지정되면 해당 서버에 수많은 요청 패킷이 몰릴 수 있기 때문이다.
2)가중 라운드-로빈(weighted round-robin)
가중 라운드-로빈 방식은 기본적으로 라운드-로빈 방식인데, 각 서버에 서로 다른 가중치를 주어서 할당하는 방식이다. 이 방식을 사용해야 하는 경우는 실제 서버들이 CPU의 수와 성능, 메모리 용량 등 서로 다른 성능을 가지고 있어서, 각 서버를 동등하게 취급할 수 없는 경우이다.
3)최소 연결(least connection)
최소 연결 방식은 실제 서버들 중에서 현재 가장 적은 수의 요청을 처리하고 있는 서버를 선택하여 요청 패킷을 할당하는 방식이다. 이 방식은 실제 서버의 현재 부하 상황을 동적으로 판단하여 요청을 처리하기 때문에, 앞의 두 방식에 비해서 동적으로 우수한 부하 분산 효과를 얻을 수 있다.
4)가중 최소 연결(weighted least connection)
가중 최소 연결 방식은 기본적으로 최소 연결 방식인데, 가중 라운드-로빈 방식과 마찬가지로 각 서버에 서로 다른 가중치를 주어서 할당하는 방식이다.