저번 글에서는 Master와 Replica에 대해서 어떻게 fsync와 psync가 일어나는 지 알아보았으니
이번에는 Master과 Replica가 서로 어떻게 통신하는 과정을 그림으로 설명하려고 한다.
일단 Redis의 기본 배경부터 설명하고 가면 기본적으로 redis는 총 4개의 노드로 구성된다 .
1개의 Master, 2개의 Replica를 가지고 1개의 Sentinel으로 구성되는 데 아래 그림에서는 Master와 Replica의 통신과정을 설명하기위해서 Sentienl은 생략했다.
Master를 기준으로 봤을 때 Server와 client를 구분해야한다.
기본적으로 server에게 명령어를 던져주는 존재를 Redis에서는 Client라고 보고 있어서 만약 Server-Replica가 기준이 된다면 Master가 client입장이 된다.
Master는 명령어를 던져주는 역할을 하지만 계속해서 Replica에게 그 던져준 명령어에 대한 ack을 받기를 기다리고 있다
만약 네트워크 통신이 잠깐 끊기게되면 psync나 fsync가 실행되기 위해 아래와 같은 그림이 실행된다.
이렇게 오늘은 Master - Replica에 통신과정에 대해서 알아보았다.
Master는 backlog_buffer에 먼저 적고 Replica에게 요청을 보내며 그렇게 Asynchronize 하게 동기화를 하는 것을 볼 수 있다.
'Data Base > Redis' 카테고리의 다른 글
Redis에서 Replica가 느려도 되는 이유 (0) | 2021.12.10 |
---|---|
Redis - Master / Replica(Slave) 의 구성 및 복제 (0) | 2020.07.29 |
Redis - Server와 Client TCP/IP 통신 (0) | 2020.07.28 |