L · 리더 통지
구조refresh
요청에 대한 응답이 아니라 서버가 먼저 보내는 통지입니다(클러스터 전용). Raft 리더가 바뀌는 것을 감지하면, 그 노드에 접속해 있는 모든 클라이언트에게 새 리더의 클라이언트 주소를 한 번씩 보냅니다.
M과 무엇이 다른가
M · 이동 | L · 리더 통지 | |
|---|---|---|
| 성격 | 요청에 대한 응답 | 서버 발신 통지 (요청과 무관) |
| 의미 | "이 요청은 여기서 처리 못 한다" | "리더가 바뀌었다" (정보) |
| 연결 | 닫고 새 리더로 재접속 | 유지 — 힌트만 갱신 |
| 이 노드 | 리더가 아님이 확실 | 이 노드가 새 리더일 수도 있음 |
L을 받고 연결을 닫으면 안 됩니다. 통지를 보낸 노드가 바로 그 새 리더인 경우가 흔하고, 그 연결로 오갈 요청도 아직 남아 있습니다.
왜 필요한가
이 통지가 없으면 클라이언트는 리더가 바뀐 사실을 요청을 한 번 던져 M으로 튕겨봐야 압니다. L은 그 왕복을 없애 장애조치 직후의 첫 요청부터 곧바로 새 리더로 가게 합니다.
이 op를 모르는 구버전 클라이언트는 무시해도 동작에 문제가 없습니다 — 성능만 통지 이전 수준(요청 → M → 재시도)이 됩니다.
바이트 표기:
op는 ASCII 문자,addr는 UTF-8 텍스트(가변, 구조에서N)입니다. 마지막\n은0A.
흐름
클라이언트
접속 중인 노드
새 리더
선거로 리더가 바뀜
L · 리더 통지 (새 리더 주소)
리더 힌트만 갱신 — 연결은 유지
다음 요청부터 바로 새 리더로
A · 획득됨 (token)
요청응답
싱글 서버 모드에서는 리더 개념이 없으므로 이 통지를 보내지 않습니다. 클러스터 동작 전반은 프로토콜 (클러스터)를 참고하세요.