블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
11-16 13:37
 

달력

« » 2024.11
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
 

최근에 올라온 글

최근에 달린 댓글


실제로 서비스를 하는 운영환경이라면 WAS 서버를 여러 대를 두어 가용성을 높일 수도 있습니다.

이러한 경우에는 L4 스위치가 로드 밸런싱을 하도록 구성되는 경우가 많습니다.


[그림 1] 2 Nodes on Multi-Servers 구성도

[그림 1] 의 구성은 L4 스위치가 두 개의 HTTP Server 앞단에서 로드밸런싱을 수행하며, 각 서버마다 두 개의 WAS 노드(인스턴스) 가 있습니다. 이와 같은 구성을 위해 앞에서 소개했던 클러스터링에서 몇 가지의 추가적인 설정이 필요로 합니다.

JBoss 의 노드(인스턴스) 구성은 node3, node4 로 설정된다는 점과 실행 옵션에서 -Djboss.service.binding.set=ports 의 값이 node3 은 ports-default, node4 는 ports-01 이라는 점만 유념하시면 됩니다.

실제로 가장 중요한 부분은 Apache HTTP Server 의 workers.properties 설정입니다.

<APACHE_HOME>/conf/workers.properties
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status

# Define Node1
worker.node1.port=8009
worker.node1.host=192.168.0.11
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.cachesize=10

# Define Node2
worker.node2.port=8109
worker.node2.host=192.168.0.11
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.cachesize=10

# Define Node3
worker.node3.port=8009
worker.node3.host=192.168.0.12
worker.node3.type=ajp13
worker.node3.lbfactor=1
worker.node3.cachesize=10

# Define Node4
worker.node4.port=8109
worker.node4.host=192.168.0.12
worker.node4.type=ajp13
worker.node4.lbfactor=1
worker.node4.cachesize=10


# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2,node3,node4
worker.loadbalancer.sticky_session=1
#worker.list=loadbalancer

# Status worker for managing load balancer
worker.status.type=status

각 서버의 Apache HTTP Server 설정을 위와 같이 바꾸어주면 자신의 서버에 올려져 있는 인스턴스 뿐만 아니라 다른 서버의 인스턴스까지 요청이 가능하게 됩니다.

단, 이러한 구성의 경우 세션 복제로 인한 오버헤드가 발생할 수 있습니다. buddy-replication 설정을 통해 근접한 인스턴스에게만 세션 복제를 할 수 있게 설정할 수 있습니다.
node1 -> node2, node2 -> node3, node3 -> node4, node4 -> node1  이런 방식으로 buddy-replication 을 설정하면 하나의 노드가 죽더라도 buddy 노드가 해당 세션을 복제 받을 수 있을 것 입니다. 하지만 이러한 경우 sticky-session 설정이 되어야 할 것으로 생각되네요...

쉬울지 알고 접근했던 JBoss 클러스터링인데, 역시 뭐든지 실제로 해보고 느껴봐야 할 것 같습니다.
안해봤으면 말을 하지 마요~ 어후...

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백