1. 개요
Coherence는 서버 검색, 클러스터 관리, 서비스 프로비저닝(Provisioning) 및 데이터 전송을 위해 클러스터링된 IP 기반 프로토콜인 TCMP(Tangosol Cluster Management Protocol)를 사용합니다. 진정한 확장성을 보장하기 위해 TCMP 프로토콜은 완전히 비동기식입니다. 즉, 서버의 많은 스레드가 동시에 통신하는 경우에도 통신이 블록킹(blocking)되지 않습니다. 또한 비동기 특성은 네트워크 대기 시간(예: 서로 다른 두 사이트 간에 라우팅된 네트워크)이 특정 작업의 속도에는 영향을 미칠 수는 있지만 클러스터 처리량(throughput)에 영향을 미치지 않습니다.
TCMP는 다음과 같이 UDP/IP 멀티캐스트, UDP/IP 유니캐스트 및 TCP/IP의 조합을 사용합니다.
1) Multicast (UDP)
- 클러스터 검색(Discovery) : 새 구성원이 가입할 수 있는 클러스터가 이미 실행 중입니까?
- 클러스터 heartbeat : 클러스터의 최상위 멤버는 멀티캐스트를 통해 주기적인 heartbeat를 보냅니다. 비율은 설정할 수 있으며 기본적으로 초당 1회로 설정됩니다.
- 메시지 전달(delivery): 여러 클러스터 구성원에게 전달해야 하는 메시지는 각 구성원에게 한 번에 메시지를 유니캐스트하는 대신 멀티캐스트를 통해 전송되는 경우가 많습니다.
2) Unicast (UDP)
- 메시지, 비동기 승인(ACK), 비동기 부정 승인(NACK) 및 peer-to-peer heartbeat을 포함한 직접적인 멤버 간("point-to-point") 통신.
- 경우에 따라 메시지가 여러 구성원에게 전달되는 경우에도 유니캐스트를 통해 메시지를 보낼 수 있습니다. 이것은 트래픽 흐름을 형성하고 매우 큰 클러스터에서 CPU 부하를 줄이기 위해 수행됩니다.
3) TCP
- 선택적 TCP/IP 링은 actual 노드 실패와 JVM이 전체 GC를 수행할 때와 같이 응답하지 않는 노드를 구별하기 위해 추가적인 "death 감지" 메커니즘으로 사용됩니다.
- TCP/IP는 프로토콜의 본질적인 오버헤드와 동기 특성으로 인해 데이터 전송 메커니즘으로 사용되지 않습니다.
2. 프로토콜 신뢰성(Protocol Reliability)
TCMP 프로토콜은 모든 메시지를 완전히 안정적이고 순서대로 전달합니다. 기본 UDP/IP 프로토콜은 신뢰할 수 있는 전달 또는 순서 있는 전달을 제공하지 않기 때문에 TCMP는 대기 중인 완전 비동기식 ACK 및 NACK 기반 메커니즘을 사용하여 메시지의 보장된 순서 지정을 위한 고유한 통합 ID와 함께 안정적인 메시지 전달을 제공합니다.
3. 프로토콜 자원 활용성(Protocol Resource Utilization)
TCMP 프로토콜에는 클러스터 크기에 관계없이 JVM당 UDP/IP 소켓 2개(멀티캐스트 1개, 유니캐스트 1개)와 스레드 6개만 필요합니다. 이는 서버 수에 관계없이 클러스터의 각 노드가 추가 네트워크 연결 없이 point-to-point 또는 클러스터 멤버 collection과 계속 통신할 수 있다는 점에서 Coherence 확장성의 핵심 요소입니다.
선택적 TCP/IP 링은 몇 개의 추가 TCP/IP 소켓과 총 하나의 추가 스레드를 사용합니다.
4. 프로토콜 조정(Protocol Tunability)
TCMP 프로토콜은 특정 네트워크 토폴로지를 활용하거나 지리적으로 분산된 클러스터에서 저대역폭 및/또는 대기 시간이 긴 세그먼트에 대한 허용 오차를 추가하기 위해 매우 조정 가능합니다. 일관성은 사전 설정된 구성과 함께 제공됩니다. 일부 TCMP 속성은 런타임 시 동적으로 자체 구성되지만 배포 목적으로 재정의 및 잠글 수도 있습니다.
5. 멀티캐스트 범위(Multicast Scope)
멀티캐스트 UDP/IP 패킷은 해당 패킷이 네트워크에서 이동할 수 있는 거리를 지정하는 TTL(Time-to-Live 값)로 구성됩니다. TTL은 패킷이 살아남을 "홉" 수로 표현됩니다. 각 네트워크 인터페이스, 라우터 및 관리 스위치는 하나의 홉으로 간주됩니다. 일관성은 멀티캐스트 메시지의 범위를 제한하는 TTL 설정을 제공합니다.
6. 멀티캐스트 비활성화(Disabling Multicast)
대부분의 WAN 환경과 일부 LAN 환경에서는 멀티캐스트 트래픽이 허용되지 않습니다. Coherence가 멀티캐스트를 사용하지 못하도록 하려면 WKA(well-known-addresses) 목록을 구성하십시오. 이렇게 하면 멀티캐스트 검색이 비활성화되고 모든 데이터 전송에 대한 멀티캐스트도 비활성화됩니다. Coherence는 가능한 한 지점 간 통신을 사용하도록 설계되었으므로 대부분의 애플리케이션 프로필은 성능에 큰 영향을 미치지 않습니다.
'코히어런스' 카테고리의 다른 글
[Tips] OOME 발생 시에 프로세스 kill (0) | 2023.03.22 |
---|---|
[Tips] 로그레벨(0-9) 변경 (0) | 2023.03.21 |
[예제] WebLogic Server와 Coherence*Web 시작하기 (0) | 2023.03.13 |
[요약] Coherence 클러스터 멤버 기동/종료 하기 (0) | 2023.03.11 |
[요약] Coherence 구성파일 (0) | 2023.03.10 |