Sun Java System Application Server 9.1 고가용성 관리 설명서

고가용성 개요

고가용성 응용 프로그램 및 서비스는 하드웨어 및 소프트웨어 장애 발생 여부에 관계없이 해당 기능을 지속적으로 제공합니다. 시간의 99.999% 동안 사용 가능하도록 설계되기 때문에 이러한 응용 프로그램은 5-9(five nines)에 해당하는 안정성을 제공한다고 말하기도 합니다.

Application Server는 다음과 같은 고가용성 기능을 제공합니다.

고가용성 세션 지속성

Application Server는 HTTP 요청 및 세션 데이터(HTTP 세션 데이터 및 Stateful Session Bean 데이터)에 대해 고가용성을 제공합니다.

Java EE 응용 프로그램은 일반적으로 많은 양의 세션 상태 데이터를 포함하게 됩니다. 웹 장바구니가 세션 상태의 일반적인 예에 해당합니다. 또한 응용 프로그램은 자주 필요한 데이터를 세션 객체에 캐시할 수 있습니다. 실제로 사용자 상호 작용이 자주 발생하는 거의 모든 응용 프로그램에서는 세션 상태가 유지되어야 합니다. HTTP 세션과 Stateful Session Bean(SFSB)에는 세션 상태 데이터가 있습니다.

서버 오류가 발생해도 세션 상태를 지속하는 것은 최종 사용자에게 아주 중요합니다. 고가용성을 위해 Application Server에서는 다음 유형의 세션 상태 데이터 저장소를 제공합니다.

사용자 세션을 호스팅하는 Application Server 인스턴스에 오류가 발생하면 세션 상태가 복구될 수 있으며 세션은 정보 손실 없이 계속될 수 있습니다.

고가용성 세션 지속성을 설정하는 방법에 대한 자세한 내용은 9 장, 고가용성 세션 지속성 및 페일오버 구성을 참조하십시오.

고가용성 Java Message Service

Java Message Service(JMS) API는 Java EE 응용 프로그램 및 구성 요소가 메시지를 작성하고, 보내고, 받고, 읽을 수 있도록 하는 메시징 표준입니다. 또한 느슨하게 결합되고 안정적인 비동기식 분산 통신을 가능하게 합니다. JMS를 구현하는 Sun Java System Message Queue(MQ)는 Application Server와 긴밀하게 통합되어 MDB(Message-Driven Bean)와 같은 JMS에 의존하는 구성 요소를 만들 수 있도록 합니다.

JMS는 연결 풀링 및 페일오버와 MQ 클러스터링을 통해 고가용성을 제공합니다. 자세한 내용은 10 장, Java Message Service 로드 균형 조정 및 페일오버을 참조하십시오.

연결 풀링 및 페일오버

Application Server는 JMS 연결 풀링 및 페일오버를 지원합니다. Application Server에서는 JMS 연결을 자동으로 풀링합니다. 기본적으로 Application Server는 지정된 호스트 목록에서 기본 MQ 브로커를 무작위로 선택합니다. 페일오버가 발생하면 MQ는 로드를 투명하게 다른 브로커로 전송하고 JMS 의미를 유지 관리합니다.

JMS 연결 풀링 및 페일오버에 대한 자세한 내용은 연결 풀링 및 페일오버를 참조하십시오.

MQ 클러스터링

MQ Enterprise Edition은 브로커 클러스터로 알려져 있는 상호 연결된 여러 브로커 인스턴스를 지원합니다. 브로커 클러스터를 사용하면 클라이언트 연결이 클러스터에 있는 모든 브로커 간에 분산됩니다. 클러스터링은 수평적 확장을 제공하며 가용성을 향상시킵니다.

MQ 클러스터링에 대한 자세한 내용은 Application Server에서 MQ 클러스터 사용을 참조하십시오.

RMI-IIOP 로드 균형 조정 및 페일오버

RMI-IIOP 로드 균형 조정에서 IIOP 클라이언트 요청은 다른 서버 인스턴스나 이름 서버에 배포되며 이를 통해 클러스터에서 로드가 균등하게 분산되어 확장성을 제공합니다. IIOP 로드 균형 조정 기능과 EJB 클러스터링 및 가용성을 함께 사용하면 EJB 페일오버가 구현됩니다.

클라이언트가 객체에 대한 JNDI 조회를 수행할 경우 이름 지정 서비스는 기본적으로 요청을 특정 서버 인스턴스에 바인딩합니다. 이후, 해당 클라이언트의 모든 조회 요청은 동일한 서버 인스턴스로 보내지므로 모든 EJBHome 객체가 동일한 대상 서버에서 호스트됩니다. 이후에 가져온 모든 Bean 참조 또한 동일한 대상 호스트에서 만들어집니다. 이 경우 JNDI 조회를 수행할 때 모든 클라이언트가 활성 대상 서버 목록을 임의화하므로 로드 균형 조정이 효과적으로 제공될 수 있습니다. 대상 서버 인스턴스가 작동 중단되면 조회 또는 EJB 메소드 호출은 다른 서버 인스턴스로 페일오버됩니다.

IIOP 로드 균형 조정 및 페일오버는 투명하게 발생합니다. 응용 프로그램 배포 중에 특별한 단계가 필요하지는 않습니다. 응용 프로그램 클라이언트가 배포된 Application Server 인스턴스가 클러스터에 참여할 경우 Application Server가 자동으로 클러스터에서 현재 활성화된 모든 IIOP 종점을 찾습니다. 하지만 종점 중 하나가 실패한 경우에 대비하여 부트스트랩 용도로 지정된 종점이 최소한 두 개 이상 클라이언트에 있어야 합니다.

RMI-IIOP 로드 균형 조정 및 페일오버에 대한 자세한 내용은 11 장, RMI-IIOP 로드 균형 조정 및 페일오버을 참조하십시오.

추가 정보

하드웨어 요구 사항 평가, 네트워크 구성 계획 및 토폴로지 선택을 비롯한 고가용성 배포 계획에 대한 자세한 내용은 Sun Java System Application Server 9.1 배포 계획 설명서를 참조하십시오. 이 설명서에는 다음과 같은 개념이 자세히 설명되어 있습니다.

고가용성 기능의 이점을 활용하는 응용 프로그램의 개발에 대한 자세한 내용은 Sun Java System Application Server 9.1 Developer’s Guide를 참조하십시오.

고가용성 서버 및 응용 프로그램 조정

고가용성을 구현하여 최상의 성능을 얻을 수 있도록 응용 프로그램 및 Application Server를 구성하고 조정하는 방법에 대한 자세한 내용은 Sun Java System Application Server 9.1 Performance Tuning Guide를 참조하십시오. 이 설명서에는 다음과 같은 항목이 설명되어 있습니다.