load_balancing
- Random (기본값)
- 가장 가까운 호스트명
- 호스트명 Levenshtein 거리
- 호스트명 최장 공통 접두사
- 호스트명 최장 공통 접미사
- 정의된 순서
- 첫 번째 또는 무작위
- Round robin
Random (기본 설정)
가장 유사한 호스트명
호스트명 Levenshtein 거리
nearest_hostname와 유사하지만, 호스트명을 Levenshtein 거리 기준으로 비교합니다. 예시는 다음과 같습니다:
호스트명의 최장 공통 접두사
nearest_hostname와 비슷하지만, 로컬 호스트명과 가장 긴 공통 접두사를 가진 레플리카를 우선 선택합니다(공통 접두사가 길수록 우선순위가 높아집니다). 문자 위치별로 서로 다른 문자를 세는 nearest_hostname와 달리, 이 전략은 숫자 세그먼트의 길이가 서로 다른 호스트명 때문에 혼동되지 않습니다. 예를 들어, 로컬 호스트명이 sfe301인 경우:
sfe10101이 sfe301과 가장 긴 공통 접두사(sfe, 길이 3)를 가지므로 우선적으로 선택됩니다.
공통 접두사 길이가 같은 레플리카는 무작위로 선택됩니다. 특히 로컬 호스트명과 접두사를 전혀 공유하는 레플리카가 없는 경우(즉, 모든 공통 접두사 길이가 0인 경우) 이 전략은 random과 정확히 동일하게 동작합니다.
호스트명의 최장 공통 접미사
hostname_longest_common_prefix와 비슷하지만, 접두사 대신 가장 긴 공통 suffix를 비교합니다. 이는 데이터 센터 아이덴티티가 호스트명의 suffix에 인코딩되어 있을 때 유용합니다. 예를 들어, 로컬 호스트명이 et46gtghn.qc.localdomain인 경우:
ab999.qc.localdomain이 et46gtghn.qc.localdomain과 가장 긴 공통 접미사(.qc.localdomain, 길이 15)를 가지므로 우선 선택됩니다.
공통 접미사 길이가 같은 레플리카는 무작위로 선택됩니다. 특히 어떤 레플리카도 로컬 호스트명과 공통 접미사를 가지지 않는 경우(모든 공통 접미사 길이가 0인 경우), 이 전략은 random과 정확히 동일하게 동작합니다.
순서대로
첫 번째 또는 무작위
first_or_random 알고리즘은 in_order 알고리즘의 문제를 해결합니다. in_order에서는 한 레플리카가 중단되면 다음 레플리카의 부하가 2배로 증가하고, 나머지 레플리카는 평소와 같은 양의 트래픽을 처리합니다. first_or_random 알고리즘을 사용하면 사용 가능한 레플리카 사이에 부하가 고르게 분산됩니다.
설정 load_balancing_first_offset을 사용하면 어떤 레플리카를 첫 번째 레플리카로 할지 명시적으로 정의할 수 있습니다. 이렇게 하면 레플리카 간 쿼리 워크로드를 리밸런싱하는 방식을 더 세밀하게 제어할 수 있습니다.
Round Robin
round_robin 정책을 사용하는 쿼리만 집계됩니다).