Sun Java System Application Server 9.1 빠른 시작 설명서

4장 로드 밸런서 작업

이 절에서는 Application Server 클러스터의 로드 밸런서 역할을 하도록 Web Server 소프트웨어를 설정하는 방법에 대한 지침을 제공합니다. 또한 로드 밸런서를 구성하여 Web Server로 내보내는 절차도 제공합니다. 엔터프라이즈 프로필이나 클러스터 프로필을 사용하는 도메인을 실행 중인 경우에만 로드 밸런서 기능을 사용할 수 있습니다.

로드 밸런서는 클러스터에 배포됩니다. 로드 밸런서는 다음과 같은 기능을 제공합니다.

Application Server에는 Sun JavaTM System Web Server, Apache 및 Microsoft Windows IIS와 같은 널리 사용되는 웹 서버용 로드 균형 조정 플러그인이 포함되어 있습니다.

이 절을 완료하기 위해서는 Domain Administration Server, 그리고 지금까지 이 설명서에서 만든 두 개의 Application Server 인스턴스와 함께 Web Server를 실행할 만큼 충분한 메모리가 시스템에 있어야 합니다. 512 ~ 1024MB 메모리의 시스템이 권장됩니다.

이 항목은 다음 내용으로 구성됩니다.

로드 균형 조정 설정

로드 균형 조정을 설정하기 전에 로드 밸런서 플러그인을 설치해야 합니다. 로드 균형 조정 플러그인을 설치하는 방법에 대한 자세한 내용은 Sun Java System Application Server 9.1 Installation GuideTo Install the Load Balancing Plug-in (standalone)을 참조하십시오. 이 절차에서는 클러스터 프로필 또는 엔터프라이즈 프로필을 사용하여 도메인을 실행 중이라고 가정합니다.

Procedure로드 균형 조정을 설정하는 방법

  1. 관리 콘솔을 사용하여 로드 밸런서를 만듭니다. asadmin create-http-lb(1) 명령을 사용하여 만들 수도 있습니다.

    1. 관리 콘솔에서 HTTP 로드 밸런서 노드를 누릅니다.

    2. 새로 만들기를 누릅니다.

    3. 로드 밸런서 이름을 lb1로 입력하고 Web Server가 설치된 호스트 및 Web Server 인스턴스 포트를 입력합니다. 이 샘플 시나리오에서 Web Server 호스트는 localhost이고 포트는 38000입니다.

    4. 변경 사항 자동 적용 확인란을 선택합니다. 이 옵션을 선택하면 로드 밸런서 구성을 내보낼 필요가 없습니다. 로드 밸런서 구성에서 변경한 모든 내용이 자동으로 전파됩니다.

    5. 대상으로 cluster1을 선택합니다.

      클러스터 만들기에서 샘플 클러스터(cluster1)를 만드는 방법에 대해 설명합니다.

    6. 저장을 누릅니다.

  2. cluster1에서 로드 균형 조정을 사용하도록 설정합니다.

    asadmin enable-http-lb-server cluster1

  3. clusterjsp 응용 프로그램에서 로드 균형 조정을 사용하도록 설정합니다.

    asadmin enable-http-lb-application clusterjsp

참조

로드 밸런서 구성 변경 또는 상태 검사기 만들기와 같은 고급 항목에 대한 자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서의 5 장, HTTP 로드 균형 조정 구성을 참조하십시오.

로드 균형 조정 시작

Web Server를 시작하거나 다시 시작하여 로드 균형 조정을 시작합니다.

로드 균형 조정 확인

응용 프로그램이 배포된 후 로드 밸런서가 실행되면 로드 균형 조정이 작동하는지 확인합니다.

Procedure로드 균형 조정을 확인하는 방법

  1. clusterjsp 응용 프로그램의 첫 페이지를 표시하기 위해 브라우저에 다음 URL을 입력합니다.

    http:// localhost:web_server_port /clusterjsp

    localhost 변수를 Web Server가 실행되고 있는 시스템 이름으로 바꿉니다.

    web_server_port 변수를 web_server_install_dir/https-hostname/config/server.xml에 있는 LS 요소의 포트 속성 값으로 바꿉니다. 이 예에서는 포트 38000이 사용됩니다.

    응용 프로그램 배포를 확인하는 방법에 표시된 것과 비슷한 페이지가 나타납니다.

  2. 표시된 세션 및 호스트 정보를 검토합니다. 예를 들면 다음과 같습니다.

    • Executed From Server: localhost

    • Server Port Number: 38000

    • Executed Server IP Address: 192.18.145.133

    • Session Created: Day Mon 05 14:55:34 PDT 2005

  3. 서버 포트 번호는 Web Server 포트인 38000입니다. 로드 밸런서가 클러스터의 두 인스턴스에 대한 요청을 전송했습니다.

  4. 다른 브라우저 소프트웨어나 다른 시스템의 브라우저를 사용하여 새 세션을 만듭니다. 동일한 브라우저의 요청은 "고정"되어 동일한 인스턴스로 이동합니다.

    이 세션은 클러스터의 두 인스턴스에 배포되어야 합니다. 다음 위치에 있는 서버 액세스 로그 파일을 찾아 이 내용을 확인할 수 있습니다.

    • Solaris Java Enterprise System 설치:

      /var/opt/SUNWappserver/nodeagents/nodeagent_name /instance1/logs/access/server_access_log

      /var/opt/SUNWappserver/nodeagents/nodeagent_name /instance2/logs/access/server_access_log

    • Linux Java Enterprise System 설치:

      /var/opt/sun/appserver/nodeagents/ nodeagent_name/instance1/logs/access/server_access_log

      /var/opt/sun/appserver/nodeagents/ nodeagent_name/instance2/logs/access/server_access_log

    • Windows Java Enterprise System 설치:

      install-dir \nodeagents\nodeagent_name \instance1\logs\access\server_access_log

      install-dir\nodeagents\nodeagent_name \instance1\logs\access\server_access_log

    • 독립 실행형 Application Server 설치:

      install-dir /nodeagents/nodeagent_name/instance1/logs/access/server_access_log

      install-dir/nodeagents/nodeagent_name /instance2/logs/access/server_access_log

  5. HttpSession에 저장하기 위해 이름 및 값 쌍(Name=Name Value=Duke)을 추가합니다.

  6. 세션 데이터에 추가 버튼을 누릅니다.

  7. 세션 데이터가 추가되었는지 확인합니다.

메모리 내 복제 기능을 이용한 고가용성 및 페일오버

GlassFish v2는 HADB를 제공하지 않습니다. GlassFish에서는 고가용성 및 페일오버를 위해 메모리 내 복제 기능을 제공합니다. 다음 절차에서는 이 기능에 대해 설명합니다.

  1. 응용 프로그램을 배포하기 전에 로드 밸런서 플러그인이 설치된 웹 서버를 다시 시작합니다. 그러면 loadbalancer.xml 파일에 설정된 순서대로 인스턴스가 요청을 처리합니다. 이 장에 제공된 loadbalancer.xml 파일을 사용할 경우 instance1이 첫 번째 요청에 사용됩니다.

  2. 세션 데이터를 저장하는 clusterjsp 웹 응용 프로그램은 이미 앞에서 배포했습니다. 첫 번째 요청을 처리한 인스턴스가 후속 요청도 처리하고 요청 전체에서 세션 데이터가 유지되는 것을 확인할 수 있어야 합니다.

  3. 요청을 몇 개 전송한 다음 해당 요청을 처리하는 인스턴스를 기록한 후 해당 인스턴스를 종료합니다. 다음 명령을 사용하여 인스턴스를 중지합니다. asadmin stop-instance --user adminuser --password adminpassword instance1

  4. 다음 요청을 전송하여 새 데이터가 저장되고 이전에 추가한 데이터가 계속 세션에 남아있는지 확인합니다. 요청을 처리하는 서버 중 하나가 사용할 수 없는 상태일 경우 동일한 클러스터에 속한 다른 서버에서 모든 이전 세션 데이터와 함께 요청을 인계 받아 요청을 완료합니다.