티스토리 뷰

728x90
반응형

 포스팅은 WebtoB LBServer 활용 가이드입니다.


일반적인 CLUSTER 환경 시  WEBTOB 2, JEUS 2대 기본 구성의 환경이 많이 존재 한다. WEBTOB JEUS로 연동 시 JEUS에서 WEBTOB로 붙는 Reverse Connection 방식을 사용하게 된다. 정상 구성 후엔 webtob에서 자신과 연결되어 있는 servlet 엔진으로 RR 혹은 FA 형식으로 요청을 넘겨주게 되는데, 추가 요건으로 장애 시 가 아닌 경우엔 Local에 있는 Servlet으로만 요청을 처리하도록 활용 하는 내용입니다.


1. 서버 구성 요건




1.1 환경구성

Linux 서버 64bit
WEBTOB 4.1.5.3 Linux(LBSServers 기능은 WEBTOB 4.1.5.X 에서 제공됩니다.)
JEUS 6 버전 Linux , aix

 

1.2 Webtob config 내용

*DOMAIN
jeuservice

*NODE
infrasvr
  WEBTOBDIR = "$WEBTOBDIR",
  SHMKEY    = 254000,
  DOCROOT   = "$WEBTOBDIR/docs",
  PORT      = "2424",   #SERVICE PORT 내용
  NODENAME  = "$(NODENAME)",
  LOGGING   = "log1",
  ERRORLOG  = "log2",
  SYSLOG    = "log3",
  IPCPERM = 0777,
  JSVPORT   = 9900,
  HTH       = 1

*SVRGROUP
htmlg       SVRTYPE = HTML
jsvg        SVRTYPE = JSV,  LBServers = "MyGroup,MyGroup2", LBType = Dynamic, LBBackup = "MyGroupBACK"

*SERVER
html        SVGNAME = htmlg, MinProc = 10,  MaxProc = 20, ASQCount = 5
MyGroup     SVGNAME = jsvg,  MinProc = 10,  MaxProc = 10, ASQCount = 5
MyGroup2    SVGNAME = jsvg,  MinProc = 10,  MaxProc = 10, ASQCount = 5
MyGroupBACK SVGNAME = jsvg,  MinProc = 10,  MaxProc = 10, ASQCount = 5

*URI
uri1        Uri      = "/", Svrtype = JSV

*LOGGING
log1        Format  = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"",  FileName = "$WEBTOBDIR/log/access_%Y%%M%%D%.log", Option = "sync"
log2        Format  = "ERROR",     FileName = "$WEBTOBDIR/log/error_%Y%%M%%D%.log",  Option = "sync"
log3        Format  = "SYSLOG",     FileName = "$WEBTOBDIR/log/system_%Y%%M%%D%.log",  Option = "sync"

*EXT
htm         MimeType = "text/html",  SvrType = HTML
jsp         Mimetype = "application/jsp",  Svrtype=JSV

 

1.3 Servlet config 내용

<?xml version="1.0"?>
<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">
    <context-group>
        <group-name>MyGroup</group-name>
        <webserver-connection>
            <webtob-listener>
                <listener-id>webtob1</listener-id>
                <port>9900</port>
                 <output-buffer-size>8192</output-buffer-size>
                 <thread-pool>
                   <min>10</min>
                   <max>10</max>
                   <step>1</step>
                   <max-idle-time>30000</max-idle-time>
                   </thread-pool>
                <webtob-address>192.168.71.32</webtob-address>
                <registration-id>MyGroup</registration-id>    // container2 는 MyGroup2
                <disable-pipe>true</disable-pipe>
                </webtob-listener>
        </webserver-connection>
. . . 생략 . . .
    </context-group>
</web-container>


<?xml version="1.0"?>
<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">
    <context-group>
        <group-name>MyGroup</group-name>
        <webserver-connection>
            <webtob-listener>
                <listener-id>webtob1</listener-id>
                <port>9900</port>
                 <output-buffer-size>8192</output-buffer-size>
                 <thread-pool>
                   <min>10</min>
                   <max>10</max>
                   <step>1</step>
                   <max-idle-time>30000</max-idle-time>
                   </thread-pool>
                <webtob-address>192.168.71.32</webtob-address>
                <registration-id>MyGroupBACK</registration-id>    
                <disable-pipe>true</disable-pipe>
                </webtob-listener>
        </webserver-connection>
. . . 생략 . . .
    </context-group>
</web-container>

  

1.4 Webtob config 상세 설명

ServerGroup

LBServers : 서버들 사이에 부하 분산을 설정하고자 할 경우 원하는 서버의 목록을 설정한다
LBType : LBServers를 설정한 경우 서버들 간의 부하를 분배하는 방법을 설정한다.

- Dynamic : 기본적으로 Round-Robin으로 분배하지만, 서버 큐에 대기 중인 요청의 수가 해당 서버의 현재 서버 프로세스 수 이상인 경우는 제외하고 분배한다. 만약 모든 서버의 서버 큐에 요청이 쌓여 있는 경우에는 다시 Round-Robin으로 분배한다.

- Static : Server 절의 LBFactor에 비례하여 서버가 요청을 처리하도록 분배한다.
LBBackup: LBServers로 설정한 서버들이 모두 READY 상태가 아닐 경우 백업 용도로 사용할 서버를 설정한다.


SERVER (여기서 LBType Static인 내용은  매뉴얼 참고)

LBFactor: SVRGROUP 절에 LBServers로 설정된 서버에 한하여 LBType이 Static인 경우 요청을 어떤 비율로 처리할지 설정한다

jsv1
    SvgName = jsvg,
    MinProc = 1,
    MAXProc = 10,
    LBFactor = 10
jsv2
    SvgName = jsvg,
    MinProc = 1,
    MAXProc = 10
    LBFactor = 5
jsv3
    SvgName = jsvg,
    MinProc = 1,
    MAXProc = 10
    LBFactor = 1
jsv4
    SvgName = jsvg,
    MinProc = 1,
    MAXProc = 10
SvgName이 jsvg이고 *SVRGROUP 절에 LBServers로 설정된 jsv1, jsv2, jsv3가 load balancing 서버로 동작하고 각각 10, 5, 1의 비율로 요청을 분산한다(LBFactor는 LBType이 Static인 경우에만 의미가 있음). LBBackup인 jsv4는 jsv1, jsv2, jsv3가 모두 사용할 수 없을 경우에 요청을 처리한다.

  

2. 테스트

2.1 서비스 호출

브라우져를 새로 열어 호출 하는 테스트를 진행했을 때, MyGroup, MyGroup2 RR방식으로 던진다(default)




wsadmin -> si

$$1 infrasvr (wsadm) [2014/11/08:10:12:35]: si
 
--------------------------------------------------------------------------------
 hth   svrname (svri)   status     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt
--------------------------------------------------------------------------------
   0  html       (  0)   RDY           0     0        0     0     0     0     0
   0  MyGroup    (  1)   RDY          18     0        0     0     0     0     0
   0  MyGroup2   (  2)   RDY           7     0        0     0     0     0     0
   0  MyGroupBACK (  3)   RDY           0     0        0     0     0     0     0

$$2 infrasvr (wsadm) [2014/11/08:10:12:35]:

 

Webtob Accesslog format 변경 후 확인  

Format  = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"",
 
192.168.70.78 - - [08/Nov/2014:10:05:25 +0900] "GET /test.jsp HTTP/1.1" 200 31 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident   /7.0; rv:11.0) like Gecko" "JSESSIONID=fTp1nykjjyji3pLgjKYNS0L5cHX4z7r0ydPZzdhd4WdyfRMpqFpYqZuewIfYQJj3.infrasvr_servlet_engine1"
192.168.70.78 - - [08/Nov/2014:10:05:49 +0900] "GET /favicon.ico HTTP/1.1" 404 1661 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36" "__smVisitorID=NVfUrqvDm0x; JSESSIONID=Wcfa17TYlLTf8Kp2WtGizN17wXBDKZoyyUZwYcgs5Xa9LLXZq6QKHj1S66mh5Ffe.infrasvr_servlet_engine2"    
192.168.70.78 - - [08/Nov/2014:10:11:52 +0900] "GET /test.jsp HTTP/1.1" 200 31 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko" "JSESSIONID=X1JJ3f1Cm2ysFjnbLfqfk4NUTaacSqEayrFDobtdwNQu3DeOq8RYe4vEGklEG6lm.infrasvr_servlet_engine1"


2.2 LBSBackup 테스트



wsadmin -> si

[infrasvr:$WEBTOBDIR/config]$ wsadmin
--- Welcome to WebtoB Admin (Type "quit" to leave) ---
 
$$1 infrasvr (wsadm) [2014/11/08:10:15:29]: si
 
--------------------------------------------------------------------------------
 hth   svrname (svri)   status     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt
--------------------------------------------------------------------------------
   0  html       (  0)   RDY           0     0        0     0     0     0     0
   0  MyGroup    (  1)   NRDY         18     0        0     0     0     0     0
   0  MyGroup2   (  2)   NRDY          7     0        0     0     0     0     0
   0  MyGroupBACK (  3)   RDY           0     0        0     0     0     0     0

  

3. 결론

LBServer 설정을 통해 원하던 구성으로 서비스 되도록 할 수 있음을 확인 할 수 있습니다.

728x90
반응형