# Broker, Replication, ISR(In-Sync Replica)
# Broker
- ์นดํ์นด๊ฐ ์ค์น๋์ด ์๋ ์๋ฒ ๋จ์๋ฅผ ๋งํจ.
- ๋ณดํต 3๊ฐ ์ด์์ broker๋ก ๊ตฌ์ฑํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅ.
- ํํฐ์
์ด 1๊ฐ์ด๊ณ replication์ด 1์ธ topic์ด ์กด์ฌํ๊ณ
๋ธ๋ก์ปค๊ฐ 3๋๋ผ๋ฉด 3๋์ค 1๋์ ํด๋น ํ ํผ๊ทธ์ด ์ ๋ณด(๋ฐ์ดํฐ)๊ฐ ์ ์ฅ๋จ.
# Replication
- Kafka ์ํคํ ์ณ์ ํต์ฌ.
- ํด๋ฌ์คํฐ์์ ์๋ฒ๊ฐ ์ฅ์ ๊ฐ ์๊ธธ ๋, ์นดํ์นด์ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ.
- replication์ partition์ ๋ณต์ ๋ฅผ ๋ปํจ.
- partiton์ ๊ณ ๊ฐ์ฉ์ฑ์ ์ํด ์ฌ์ฉํจ.
- ๋ง์ฝ replication์ด 1์ด๋ผ๋ฉด partition์ 1๊ฐ๋ง ์กด์ฌํจ
- ๋ง์ฝ replication์ด 2๋ผ๋ฉด partition์ ์๋ณธ 1๊ฐ์ ๋ณต์ ๋ณธ 1๊ฐ๋ก ๊ตฌ์ฑ๋จ.
- ๋ง์ฝ replication์ด 3์ด๋ฉด partition์ ์๋ณธ 1๊ฐ์ ๋ณต์ ๋ณธ 2๊ฐ๋ก ๊ตฌ์ฑ.
- ๋ค๋ง, ๋ธ๋ก์ปค ์บ์์ ๋ฐ๋ผ์ replication ๊ฐ์๊ฐ ์ ํ๋จ.
- ๋ธ๋ก์ปค ๊ฐ์๊ฐ 3์ด๋ฉด replicaton์ 4 ์ด์์ด ๋ ์ ์์.
- ์๋ณธ 1๊ฐ์ ํํฐ์ ์ Leader Partiton์ด๋ผ๊ณ ๋ถ๋ฆ.
- ๋๋จธ์ง 2๊ฐ์ ํํฐ์
์ Follower Partition์ด๋ผ๊ณ ๋ถ๋ฆ.
- ํ๋ก๋์๊ฐ ํ ํฝ์ ํํฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋, ์ ๋ฌ ๋ฐ๋ ์ฃผ์ฒด๋ Leader Partition.
- ํ๋ก๋์์๋ ack๋ผ๋ ์์ธ ์ต์
์ด ์๋๋ฐ, ์ด ack๋ฅผ ํตํด ๊ณ ๊ฐ์ฉ์ฑ์ ์ ์ง.
- ์ด ์ต์ ์ partition์ replication๊ณผ ๊ด๋ จ์ด ์์.
- ack๋ 0, 1, all ์ต์ 3๊ฐ ์ค, 1๊ฐ๋ฅผ ๊ณจ๋ผ์ ์ค์ ํ ์ ์์.
- 0: ํ๋ก๋์๋ Leader Partition์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์๋ต๊ฐ์ ๋ฐ์ง ์์.
์๋๋ ๋น ๋ฅด์ง๋ง ๋ฐ์ดํฐ ์ ์ค ๊ฐ๋ฅ์ฑ์ด ์์. - 1: Leader Partition์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ ์์ ์ผ๋ก ๋ฐ์๋์ง ์๋ต๊ฐ์ ๋ฐ์.
๋๋จธ์ง ํํฐ์ ์ ๋ณต์ ๋์๋์ง๋ ์์ ์์. - all: 1์ต์
์ ์ถ๊ฐ๋ก Follow Partitoin์๋ ๋ณต์ ๊ฐ ์ ์ด๋ฃจ์ด์ก๋์ง ์๋ต๊ฐ์ ๋ฐ์.
all์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ ์ค์ ๊ฑฐ์ ์๋ค๊ณ ๋ณด๋ฉด ๋จ.
๊ทธ๋ ์ง๋ง 0,1์ ๋นํด ํ์ธํ๋ ๋ถ๋ถ์ด ๋ง๊ธฐ ๋๋ฌธ ์๋๊ฐ ํ์ ํ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์.
- Replication์ด ๋๋ฌด ๋ง์ผ๋ฉด ๋ธ๋ก์ปค์ ๋ฆฌ์์ค ์ฌ์ฉ๋๋ ๋์ด๋๊ฒ ๋จ.
- ๋ฐ๋ผ์ kafka์ ๋ค์ด์ค๋ ๋ฐ์ดํฐ ๋๊ณผ ์ ์ฅ ์๊ฐ์ ์๊ฐํด์ replication ๊ฐ์๋ฅผ ์ ํ๋ ๊ฒ์ด ์ข์.
# ISR(In Sync Replica)
- Leader Partiton๊ณผ Follow Partition์ ํฉ์ณ์ ISR ์ด๋ผ๊ณ ํจ.
โ TOPIC Partitioner โ