# Broker, Replication, ISR(In-Sync Replica)

img.png

# Broker

  • ์นดํ”„์นด๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์„œ๋ฒ„ ๋‹จ์œ„๋ฅผ ๋งํ•จ.
  • ๋ณดํ†ต 3๊ฐœ ์ด์ƒ์˜ broker๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ.
  • ํŒŒํ‹ฐ์…˜์ด 1๊ฐœ์ด๊ณ  replication์ด 1์ธ topic์ด ์กด์žฌํ•˜๊ณ 
    ๋ธŒ๋กœ์ปค๊ฐ€ 3๋Œ€๋ผ๋ฉด 3๋Œ€์ค‘ 1๋Œ€์— ํ•ด๋‹น ํ† ํ”ผ๊ทธ์ด ์ •๋ณด(๋ฐ์ดํ„ฐ)๊ฐ€ ์ €์žฅ๋จ.

# Replication

  • Kafka ์•„ํ‚คํ…์ณ์˜ ํ•ต์‹ฌ.
  • ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„œ๋ฒ„๊ฐ€ ์žฅ์• ๊ฐ€ ์ƒ๊ธธ ๋•Œ, ์นดํ”„์นด์˜ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•.
  • replication์€ partition์˜ ๋ณต์ œ๋ฅผ ๋œปํ•จ.
  • partiton์˜ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•จ.
  • ๋งŒ์•ฝ replication์ด 1์ด๋ผ๋ฉด partition์€ 1๊ฐœ๋งŒ ์กด์žฌํ•จ P1R1
  • ๋งŒ์•ฝ replication์ด 2๋ผ๋ฉด partition์€ ์›๋ณธ 1๊ฐœ์™€ ๋ณต์ œ๋ณธ 1๊ฐœ๋กœ ๊ตฌ์„ฑ๋จ. P1R2
  • ๋งŒ์•ฝ replication์ด 3์ด๋ฉด partition์€ ์›๋ณธ 1๊ฐœ์™€ ๋ณต์ œ๋ณธ 2๊ฐœ๋กœ ๊ตฌ์„ฑ. P1R3
  • ๋‹ค๋งŒ, ๋ธŒ๋กœ์ปค ์บ์ˆ˜์— ๋”ฐ๋ผ์„œ replication ๊ฐœ์ˆ˜๊ฐ€ ์ œํ•œ๋จ.
    • ๋ธŒ๋กœ์ปค ๊ฐœ์ˆ˜๊ฐ€ 3์ด๋ฉด replicaton์€ 4 ์ด์ƒ์ด ๋  ์ˆ˜ ์—†์Œ.
  • ์›๋ณธ 1๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ Leader Partiton์ด๋ผ๊ณ  ๋ถ€๋ฆ„.
  • ๋‚˜๋จธ์ง€ 2๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ Follower Partition์ด๋ผ๊ณ  ๋ถ€๋ฆ„. Leader&Follow 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 ์ด๋ผ๊ณ  ํ•จ.