SW/JavaScript

Hazelcast Viridian Serverless : 페일오버 클라이언트를 생성하는 방법

얇은생각 2023. 5. 13. 07:30
반응형

Java 클라이언트에서 코드를 업데이트하여 원래 기본 클러스터에 연결할 수 없는 경우 보조 페일오버 클러스터에 자동으로 연결하는 방법에 대해 알아봅니다.

페일오버는 거의 일정한 가용성에 의존하는 시스템의 중요한 기능입니다. Hazelcast에서는 클라이언트가 기본 클러스터에 연결할 수 없을 때 페일오버 클라이언트가 트래픽을 보조 클러스터로 자동 리디렉션합니다. 재해 복구 전략의 일부로 WAN 복제와 함께 페일오버 클라이언트를 사용하는 것을 고려해 보십시오. 이 튜토리얼에서는 Java 클라이언트의 코드를 업데이트하여 원래 기본 클러스터에 연결할 수 없는 경우 보조 장애 조치(failover) 클러스터에 자동으로 연결합니다. 또한 간단한 테스트를 실행하여 구성이 올바른지 확인한 다음 예외 처리를 포함하도록 구성을 조정합니다. 기본 및 보조 클러스터에 대한 페일오버 클라이언트를 생성하고, 샘플 Java 클라이언트를 기반으로 페일오버 클라이언트를 생성하고, 페일오버를 테스트하고, 작업에 대한 예외 처리를 추가하는 데 필요한 모든 리소스를 수집하는 방법에 대해 알아봅니다.

 

Hazelcast Viridian Serverless : 페일오버 클라이언트를 생성하는 방법

 

 

1단계: 클러스터 및 클라이언트 설정

기본 및 보조 클러스터로 사용할 두 개의 Viridian Serverless 클러스터를 만든 다음 샘플 Java 클라이언트를 다운로드하여 연결합니다.

- 기본 클러스터로 사용할 Viridian Serverless 클러스터를 만듭니다. 클러스터를 사용할 준비가 되면 빠른 연결 안내서가 표시됩니다.

- Java 아이콘을 선택하고 화면의 지시에 따라 미리 구성된 Java 클라이언트를 다운로드, 추출 및 기본 클러스터에 연결합니다.

- 보조 클러스터로 사용할 Viridian Serverless 클러스터를 만듭니다.

- 빠른 연결 안내서의 지침에 따라 미리 구성된 Java 클라이언트를 다운로드, 추출 및 보조 클러스터에 연결합니다.

 

이제 두 개의 실행 중인 클러스터가 있으며 두 Java 클라이언트가 모두 연결할 수 있는지 확인했습니다.

 

 

2단계: 페일오버 클라이언트 구성

장애 조치 클라이언트를 만들려면 기본 클러스터에 대한 Java 클라이언트의 구성 및 코드를 업데이트합니다.

먼저 보조 클러스터의 Java 클라이언트에서 키 저장소 파일을 추가합니다.

- 보조 클러스터의 Java 클라이언트를 추출한 디렉토리로 이동한 다음 src/main/resources로 이동합니다.

- 클라이언트 이름을 변경합니다.키 저장소 파일을 클라이언트2에 저장합니다.keystore를 선택하고 client.truststore 파일의 이름을 client2.truststore로 변경하여 기본 클러스터 키 저장소의 파일을 덮어쓰지 않도록 합니다.

 

두 파일을 모두 주 클러스터의 src/main/resources 디렉토리로 복사합니다. 기본 클러스터의 Java 클라이언트(Client with Ssl.java)의 코드를 업데이트하여 보조 클러스터에 대한 페일오버 클래스 및 연결 세부 정보를 포함합니다. 이러한 연결 세부 정보는 보조 클러스터의 Java 클라이언트에서 확인할 수 있습니다.

- 기본 클러스터의 Java 클라이언트를 추출한 디렉토리로 이동한 다음 src/main/java/com/hazelcast/cloud/로 이동합니다.

- Java 클라이언트(Ssl.java를 사용하는 클라이언트)를 열고 다음과 같이 업데이트합니다. 예제 페일오버 클라이언트도 다운로드할 수 있습니다.

 

 

3단계: 페일오버 확인

기본 클러스터가 중지되면 페일오버 클라이언트가 보조 클러스터에 자동으로 연결되는지 확인합니다. 

- 두 Viridian Serverless 클러스터가 모두 실행 중인지 확인합니다.

- 1단계에서와 동일한 방법으로 페일오버 클라이언트를 기본 클러스터에 연결합니다.

- 기본 클러스터를 중지합니다. 기본 클러스터의 대시보드에서 클러스터 세부 정보에서 일시 중지를 선택합니다. 클라이언트가 기본 클러스터에서 연결이 끊어지고 보조 클러스터에 다시 연결되면 콘솔에 다음 메시지가 순서대로 표시됩니다:

  • CLIENT_DISCONNECTED
  • CLIENT_CONNECTED
  • CLIENT_CHANGED_CLUSTER

 

샘플 Java 클라이언트에서 nonStopMapExamp를 사용하는 경우 클라이언트가 중지됩니다. 클러스터의 연결이 끊어지면 쓰기 작업을 다시 시도할 수 없기 때문에 이 문제가 발생할 수 있습니다. 클라이언트가 클러스터에 입력 요청을 보냈지만 응답을 받지 못했기 때문에 요청 결과를 알 수 없습니다. 클라이언트가 최신 쓰기 작업을 덮어쓰지 않도록 이 쓰기 작업을 중지하고 예외를 던집니다.

 

 

4단계: 예외 처리

페일오버 클라이언트에서 nonStopMapExample() 함수를 업데이트하여 기본 클러스터의 연결이 끊어질 때 발생하는 예외를 트랩합니다.

다음 try-catch 블록을 nonStopMapExample() 함수의 while 루프에 추가합니다. 이 코드는 원래 map.put() 함수를 대체합니다.

try {
    map.put("key-" + randomKey, "value-" + randomKey);
} catch (Exception e) {
    // Captures exception from disconnected client
    e.printStackTrace();
}

 

 

코드를 다시 확인합니다(3단계 반복). 이때 클라이언트는 보조 클러스터에 연결된 후에도 맵 항목을 계속 씁니다.

반응형