클러스터는 하나의 논리 엔티티로 함께 작동하는 Application Server 인스턴스 모음입니다. 클러스터는 하나 이상의 J2EE 응용 프로그램에 런타임 환경을 제공합니다. 고가용성 클러스터는 상태 보존형 응용 프로그램 서비스를 클러스터 및 로드 밸런서에 통합합니다.
클러스터를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
고가용성: 클러스터 내 서버 인스턴스에 대한 페일오버 보호를 허용합니다. 한 서버 인스턴스가 중지되면 다른 서버 인스턴스에서 사용 불가능한 서버 인스턴스가 처리하던 요청을 넘겨 받습니다.
확장성: 서버 인스턴스를 클러스터에 추가할 수 있어 시스템 용량을 늘릴 수 있습니다. 로드 밸런서 플러그인은 클러스터 내의 사용 가능한 서버 인스턴스로 요청을 분산합니다. 관리자가 서버 인스턴스를 클러스터에 추가하므로 서비스를 중단할 필요가 없습니다.
클러스터의 모든 인스턴스는 다음과 같습니다.
동일한 구성을 참조합니다.
동일한 집합의 배포된 응용 프로그램을 갖습니다(예: J2EE 응용 프로그램 EAR 파일, 웹 모듈 WAR 파일 또는 EJB JAR 파일).
동일한 자원 집합을 가지므로 JNDI 이름 공간도 같습니다.
도메인의 모든 클러스터에는 고유한 이름이 있습니다. 여기서 이 이름은 모든 노드 에이전트 이름, 서버 인스턴스 이름 및 구성 이름에 대해 고유해야 합니다. 이름은 domain이 아니어야 합니다. 클러스터링되지 않은 서버 인스턴스에서 수행하는 것과 동일한 작업(예: 응용 프로그램 배포 및 자원 작성)을 클러스터에서 수행합니다.
클러스터의 설정은 다른 클러스터와 공유될 수 있는 명명된 구성에서 파생됩니다. 다른 서버 인스턴스나 클러스터와 구성을 공유하지 않는 클러스터는 독립 실행형 구성 을 갖는다고 할 수 있습니다. 기본적으로 이 구성의 이름은 cluster_name -config입니다. 여기서 cluster_name은 클러스터의 이름입니다.
다른 클러스터나 인스턴스와 구성을 공유하는 클러스터는 공유 구성을 갖는다고 할 수 있습니다.
클러스터, 서버 인스턴스, 로드 밸런서 및 세션은 다음과 같이 관련되어 있습니다.
서버 인스턴스가 클러스터의 일부일 필요는 없습니다. 그러나 클러스터의 일부가 아닌 인스턴스는 세션 간의 세션 상태 전송을 통한 고가용성을 이용할 수 없습니다.
클러스터 내의 서버 인스턴스를 하나 또는 여러 대의 시스템에 호스트할 수 있습니다. 다른 시스템의 서버 인스턴스를 한 클러스터로 묶을 수 있습니다.
특정한 로드 밸런서는 요청을 여러 클러스터의 서버 인스턴스로 전달할 수 있습니다. 로드 밸런서의 이 기능을 사용하면 서비스 손실 없이 온라인 업그레이드를 수행할 수 있습니다. 자세한 내용은 서비스 손실 없이 구성 요소 업그레이드를 참조하십시오.
한 클러스터에서 여러 로드 밸런서로부터 요청을 수신할 수 있습니다. 클러스터를 여러 로드 밸런서에서 사용할 경우 각 로드 밸런서에서 동일한 방법으로 클러스터를 구성해야 합니다.
각 세션은 특정 클러스터에 연결됩니다. 따라서 여러 클러스터에 응용 프로그램을 배포할 수 있지만 세션 페일오버는 단일 클러스터 내에서만 발생합니다.
클러스터는 클러스터 내 서버 인스턴스의 세션 페일오버에 대한 안전한 경계 역할을 합니다. 로드 밸런서를 사용하여 Application Server 내 구성 요소를 서비스 손실 없이 업그레이드할 수 있습니다.