본문 바로가기

Ignite - 기술

클라이언트 노드 연결

클라이언트 노드 다시 연결

클라이언트 노드는 여러 경우에 클러스터에서 연결이 끊어 질 수 있습니다.

  • 클라이언트 노드는 네트워크 문제로 인해 서버 노드와의 연결을 다시 설정할 수 없습니다.

  • 서버 노드와의 연결이 한동안 끊어졌습니다. 클라이언트 노드는 클러스터와의 연결을 다시 설정할 수 있지만 서버가 클라이언트 하트 비트를 수신하지 않았기 때문에 서버는 이미 클라이언트 노드를 삭제했습니다.

  • 느린 클라이언트는 클러스터에서 쫓겨날 수 있습니다.

클라이언트가 클러스터에서 연결이 끊어진 것을 확인하면 새 노드 ID를 자신에게 할당하고 클러스터에 다시 연결을 시도합니다. 이는 부작용이 있습니다 ClusterNode. 클라이언트 재 연결의 경우 로컬의 ID 속성이 변경됩니다. 이는 ID에 의존하는 모든 애플리케이션 로직이 영향을받을 수 있음을 의미합니다.

노드 구성에서 클라이언트 재 연결을 비활성화 할 수 있습니다.

 

클라이언트가 연결이 끊긴 상태이고 재 연결 시도가 진행중인 동안 Ignite API는 IgniteClientDisconnectedException. 예외에는 future재 연결 작업을 나타내는이 포함 됩니다. 를 사용하여 future작업이 완료 될 때까지 기다릴 수 있습니다 .

 

클라이언트 연결 끊김 / 재 연결 이벤트

클러스터에서 연결이 끊어 지거나 클러스터에 다시 연결될 때 클라이언트 노드에서 트리거되는 두 가지 감지 이벤트가 있습니다.

  • EVT_CLIENT_NODE_DISCONNECTED

  • EVT_CLIENT_NODE_RECONNECTED

이러한 이벤트를 수신하고 이에 대한 사용자 지정 작업을 실행할 수 있습니다. 코드 예제는 이벤트 수신 섹션을 참조하십시오 .

느린 클라이언트 노드 관리

많은 배포에서 클라이언트 노드는 네트워크 처리량이 낮은 느린 시스템에서 시작됩니다. 이러한 시나리오에서 서버는 클라이언트가 처리 할 수없는로드 (예 : 연속 쿼리 알림)를 생성 할 수 있습니다. 이로 인해 서버에서 아웃 바운드 메시지 대기열이 증가하여 결국 서버에서 메모리 부족 상황이 발생하거나 전체 클러스터를 차단할 수 있습니다.

이러한 상황을 처리하기 위해 클라이언트 노드에 대한 최대 발신 메시지 수를 구성 할 수 있습니다. 아웃 바운드 큐의 크기가이 값을 초과하면 클라이언트 노드가 클러스터에서 연결이 끊어집니다.

아래 예는 느린 클라이언트 큐 제한을 구성하는 방법을 보여줍니다.