8.6. 클러스터 토폴로지 통신
jboss-ejb-client.properties
파일의 사용은 더 이상 사용되지 않습니다 .
클라이언트가 서버에 연결하면 서버에 클러스터링 기능이 있는 경우 JBoss Jakarta Enterprise Beans 클라이언트 구현이 클러스터 토폴로지 정보용 서버와 내부적으로 통신합니다. 예를 들어 서버 X가 연결할 초기 서버로 나열되는 경우 클라이언트가 서버 X에 연결할 때 서버는 비동기 클러스터 토폴로지 메시지를 클라이언트에 다시 보냅니다. 이 토폴로지 메시지는 클러스터 이름과 클러스터에 속하는 노드의 정보로 구성됩니다. 노드 정보에는 필요한 경우 연결할 노드 주소와 포트 번호가 포함됩니다. 이 예에서 서버 X는 클러스터에 속하는 다른 서버 Y로 구성된 클러스터 토폴로지를 다시 보냅니다.
상태 저장 클러스터형 Jakarta Enterprise Bean의 경우 호출 흐름이 두 단계로 수행됩니다.
- 상태 저장 빈에 대한 세션 생성은 해당 빈에 대해 Java 네이밍 및 디렉터리 인터페이스 조회를 수행할 때 발생합니다.
- 반환된 프록시를 호출합니다.
상태 저장 빈에 대한 조회는 내부적으로 클라이언트에서 서버로 동기 세션 생성 요청을 트리거합니다. 이 경우 세션 생성 요청은 jboss-ejb-client.properties
파일에 구성되었으므로 서버 X로 이동합니다. 서버 X가 클러스터되므로 세션 ID를 반환하고 해당 세션의 선호도 를 다시 보냅니다. 클러스터된 서버의 경우 선호도 는 상태 저장 빈이 서버 측에 속하는 클러스터의 이름과 동일합니다. 비클러스터형 빈의 경우 선호도는 세션이 생성된 노드 이름입니다. 이 선호도 를 사용하면 Jakarta Enterprise Beans 클라이언트가 클러스터형 빈의 노드 또는 클러스터되지 않은 빈의 경우 특정 노드로 프록시에서 호출을 라우팅할 수 있습니다. 이 세션 생성 요청이 실행되는 동안 서버 X는 클러스터 토폴로지를 포함하는 비동기 메시지를 다시 보냅니다. JBoss Jakarta Enterprise Beans 클라이언트 구현은 이 토폴로지 정보를 기록하고 나중에 클러스터 내의 노드에 연결하고 필요한 경우 호출을 라우팅하는 데 사용합니다.
장애 조치(failover)가 작동하는 방식을 이해하기 위해 서버 X가 시작점이며 클라이언트 애플리케이션이 상태 저장 빈을 찾아 호출하는 것과 동일한 예제를 고려합니다. 이러한 호출 중에 클라이언트 측은 서버에서 클러스터 토폴로지 정보를 수집합니다. 어떤 이유로든 서버 X가 다운되고 클라이언트 애플리케이션이 프록시에서 호출된다고 가정합니다. 이 단계에서 JBoss Jakarta Enterprise Beans 클라이언트 구현은 선호도 를 인식해야 하며, 이 경우 클러스터 선호도입니다. 클라이언트에 있는 클러스터 토폴로지 정보에서 클러스터에 서버 X와 서버 Y의 두 개의 노드가 있음을 알고 있습니다. 호출이 도착하면 클라이언트에서 서버 X가 다운되었음을 알 수 있으므로 선택기를 사용하여 클러스터 노드에서 적합한 노드를 가져옵니다. 선택기가 클러스터 노드에서 노드를 반환하면 JBoss Jakarta Enterprise Beans 클라이언트 구현에서 연결이 이전에 생성되지 않은 경우 해당 노드에 대한 연결을 생성하고 Jakarta Enterprise Beans 수신자를 생성합니다. 이 예에서 클러스터의 다른 노드만 server Y이므로 선택기는 서버 Y를 노드로 반환하고 JBoss Jakarta Enterprise Beans 클라이언트 구현에서는 이 수신자를 사용하여 Jakarta Enterprise Beans 수신자를 생성하고 이 수신자를 사용하여 프록시의 호출을 전달합니다. 이제 클러스터 내의 다른 노드로 호출이 실패했습니다.