Sun Java System Application Server 9.1 배포 계획 설명서

클러스터의 IIOP 로드 균형 조정

IIOP 로드 균형 조정 기능을 사용하면 IIOP 클라이언트 요청이 여러 서버 인스턴스나 이름 서버에 분산됩니다. 목표는 클러스터 내에서 로드를 균일하게 분산시켜 확장성을 제공하는 것입니다. Sun Java System Application에서 EJB 클러스터링 및 가용성 기능과 결합된 IIOP 로드 균형 조정 기능은 로드 균형 조정뿐 아니라 EJB 페일오버 기능도 제공합니다.

클라이언트가 객체에 대해 JNDI 조회를 수행하면 이름 지정 서비스는 특정 서버 인스턴스와 연결된 InitialContext(IC) 객체를 만듭니다. 그러면 해당 IC 객체를 사용하여 수행된 모든 조회 요청은 동일한 서버 인스턴스로 보내집니다. 해당 InitialContext를 사용하여 조회된 모든 EJBHome 객체는 동일한 대상 서버에 호스트됩니다. 이후에 가져온 모든 Bean 참조 또한 동일한 대상 호스트에서 만들어집니다. 이 경우 InitialContext 객체를 만들 때 모든 클라이언트가 활성 대상 서버 목록을 임의화하므로 로드 균형 조정이 효과적으로 구현될 수 있습니다. 대상 서버 인스턴스가 작동 중단되면 조회 또는 EJB 메소드 호출은 다른 서버 인스턴스로 페일오버됩니다.

예를 들어 이 그림에 표시된 대로 ic1, ic2 및 ic3은 Client2의 코드에서 생성된 3개의 서로 다른 InitialContext 인스턴스로서, 클러스터 내 3개의 서버 인스턴스로 배포됩니다. 따라서, 이 클라이언트에서 만든 Enterprise JavaBeans가 3개의 인스턴스에 분산됩니다. Client1은 한 개의 InitialContext 객체만 생성했고 이 클라이언트의 Bean 참조는 Server Instance 1에만 있습니다. Server Instance 2가 다운되면 ic2의 조회 요청이 다른 서버 인스턴스(반드시 Server Instance 3일 필요는 없음)로 페일오버됩니다. 이전에 Server Instance 2에서 호스팅된 Bean에 대한 모든 Bean 메소드 호출 또한, 안전한 경우에 한해 다른 인스턴스로 자동으로 리디렉션됩니다. 조회 페일오버가 자동인 상태에서 Enterprise JavaBeans 모듈은 안전한 경우에 한해 메소드 호출을 다시 시도합니다.

IIOP 로드 균형 조정 및 페일오버는 투명하게 발생합니다. 응용 프로그램 배포 중에 특별한 단계가 필요하지는 않습니다. 클러스터에서 새 인스턴스를 추가 또는 삭제해도 클러스터의 기존 클라이언트 뷰가 업데이트되지 않습니다. 클라이언트측의 종점 목록을 수동으로 업데이트해야 합니다.