티스토리 뷰

728x90
반응형

 

본 포스팅은 Apache의 Load Balancing에 대한 가이드입니다.


본 포스팅은 Apache의 worker별 load balancing 을 구성하는 시나리오입니다.

먼저 Standalone Mode에서의 Clustering환경 구성과 Apache와의 연동이 필요하니, 지난 포스팅을 꼭 참고해주세요.

 

 

Apache 구성파트입니다.

 

1.부하 분산을 위해 요청을 마운트할 worker는 load_balancer 입니다. 이를 httpd.conf 에 설정합니다.


- httpd.conf

..

###AJP13 Setting For Node1,2
LoadModule jk_module /home/test/apache/modules/mod_jk.so
JkWorkersFile /home/test/apache/conf/worker.properties
JkShmFile /home/test/apache/logs/mod_jk.shm
JkLogFile /home/test/apache/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /* load_balancer


 

2.worker에 대한 설정입니다.

노드별 worker, 그리고 이 worker들을 묶어 관리할 load_balancer라는 worker에 대한 구성을 해야합니다. 


- worker.properties

 

# Set properties for worker_node1.worker_node2,load_balancer
worker.list=load_balancer
worker.load_balancer.type=lb
worker.load_balancer.balance_workers=worker_node1,worker_node2

worker.load_balancer.sticky_session=true
# worker properties

worker.worker_node1.host=IP

worker.worker_node1.port=Port
worker.worker_node1.type=ajp13
worker.worker_node1.route=worker_node1
worker.worker_node1.lbfactor=1 //부하분산

worker.worker_node2.host=IP
worker.worker_node2.port=Port
worker.worker_node2.type=ajp13
worker.worker_node2.route=worker_node2
worker.worker_node2.lbfactor=5 //부하분산


- worker.[worker명].lbfactor : 요청을 몇번 처리하고 다음 worker에게 부하를 분산시킬것인지 결정합니다.

  위 가이드에서는 worker_node1이 1번 요청을 받고 worker_node2가 5번의 요청을 받겠네요.

 

 

구성은 끝났습니다. Apache 재기동을 하고 테스트를 시작해보겠습니다. 

 

a. session.jsp 호출 - Count 1   

- http://localhost/session.jsp 

access.log

- 172.21.70.219 - - [09/Aug/2018:13:01:36 +0900] GET /4/session.jsp HTTP/1.1 200 620 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1


 

b. session.jsp 재호출 - Count 2~6 

- 172.21.70.219 - - [09/Aug/2018:13:01:49 +0900] GET /4/session.jsp HTTP/1.1 200 621 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1
- 172.21.70.219 - - [09/Aug/2018:13:01:59 +0900] GET /4/session.jsp HTTP/1.1 200 621 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1
- 172.21.70.219 - - [09/Aug/2018:13:02:11 +0900] GET /4/session.jsp HTTP/1.1 200 621 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1
- 172.21.70.219 - - [09/Aug/2018:13:02:24 +0900] GET /4/session.jsp HTTP/1.1 200 621 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1
- 172.21.70.219 - - [09/Aug/2018:13:02:36 +0900] GET /4/session.jsp HTTP/1.1 200 621 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1


 

c. session.jsp 재호출 - Count 7


access.log

- 172.21.70.219 - - [09/Aug/2018:13:02:57 +0900] GET /4/session.jsp HTTP/1.1 200 621 %{Referer}i %{User-Agent}i GQKqml6dG10cK-fjvx5QTYiPllv1yRCQAV7vp11d default task-1


 

두 노드간의 처리 비율이 설정한대로 1:5인것을 확인할 수 있습니다.

하드웨어의 성능이 다른 서버(WAS)로의 요청이 필요한 상황인경우, Load Balancing 처리를 통해 처리비율을 다르게 줌으로써 성능상의 이점을 얻을 수 있습니다.

 

고맙습니다.  

 

 

 

728x90
반응형