06. Replication

Broker ์žฅ์•  ๋ฐœ์ƒ

  • Broker์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น Broker์˜ Partition์„ ๋ชจ๋‘ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. โ†’ Replication์„ ํ†ตํ•œ ์žฅ์•  ๋Œ€๋น„

Replication

  • Partition์„ ๋ณต์ œ(Replication)ํ•˜์—ฌ ๋‹ค๋ฅธ Broker ์ƒ์—์„œ ๋ณต์ œ๋ฌผ(Replicas)๋ฅผ ๋งŒ๋“ค์–ด์„œ ์žฅ์• ๋ฅผ ๋ฏธ๋ฆฌ ๋Œ€๋น„.

  • Leader Partition, Follower Partition์œผ๋กœ ๊ตฌ์„ฑ.

  • Producer๋Š” Leader์— Write / Follower๋Š” Leader๋กœ๋ถ€ํ„ฐ Read

  • Follower๊ฐ€ Leader์˜ Commit Log๋ฅผ Fetch Requestํ•œ๋‹ค.

  • Apache Kafka 2.4๋ถ€ํ„ฐ Follower Fetching(Read) ๊ฐ€๋Šฅ

์žฅ์•  ๋ฐœ์ƒ

  1. Kafka ํด๋Ÿฌ์Šคํ„ฐ๋Š” Follower ์ค‘์—์„œ ์ƒˆ๋กœ์šด Leader ์„ ์ถœ

  2. Clients(Producer/Consumer)๋Š” ์ž๋™์œผ๋กœ ์ƒˆ Leader๋กœ ์ „ํ™˜

Partition Leader์— ๋Œ€ํ•œ ์ž๋™ ๋ถ„์‚ฐ(Hot Spot๋ฐฉ์ง€)

  • ํ•˜๋‚˜์˜ ๋ธŒ๋กœ์ปค์— Partition์˜ Leader๋“ค์ด ๋ชฐ๋ ค ์žˆ๋Š” ๊ฒฝ์šฐ, ํŠน์ • broker์— ๋ถ€ํ•˜ ์ง‘์ค‘(Hot Spot)

  • Hot Spot ๋ฐฉ์ง€ ์˜ต์…˜

    • auto.leader.rebalance.enable: ๊ธฐ๋ณธ๊ฐ’ enable

    • leader.imbalance.check.interval.seconds: ๊ธฐ๋ณธ๊ฐ’ 300 sec

    • leader.imbalance.per.broker.percentage: ๊ธฐ๋ณธ๊ฐ’ 10%

Rack Awareness

  • Rack๊ฐ„ ๋ถ„์‚ฐํ•˜์—ฌ Rack ์žฅ์• ๋ฅผ ๋Œ€๋น„

    • ๋ž™(Rack)์€ PC๋‚˜ ์„œ๋ฒ„, ํ†ต์‹ ์žฅ๋น„, ๊ฐ์ข… ๊ณ„์ธก๊ธฐ ๋“ฑ ์ผ์ • ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์žฅ๋น„๋“ค์„ ๋ณด๊ด€ํ•˜๊ณ  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ œํ’ˆ.

  • ๋™์ผํ•œ Rack ํ˜น์€ Avilable Zone ์ƒ์˜ Broker๋“ค์— ๋™์ผํ•œ โ€œrack nameโ€ ์ง€์ •

  • ๋ณต์ œ๋ณธ(Replica-Leader/Follower)์€ ์ตœ๋Œ€ํ•œ Rack ๊ฐ„์— ๊ท ํ˜•์„ ์œ ์ง€ํ•˜์—ฌ Rack ์žฅ์•  ๋Œ€๋น„

  • Topic ์ƒ์„ฑ์‹œ ๋˜๋Š” Auto Data Balancer/Self Balancing Cluster ๋™์ž‘ ๋•Œ๋งŒ ์‹คํ–‰

Rack Awareness๋ฅผ ํ•˜๋Š” ์ด์œ ?

๋ฐ์ดํ„ฐ์˜ ๋ณต์‚ฌ๋ณธ๋“ค์ด ๋™์ผํ•œ ๋ž™์— ์ €์žฅ์ด ๋˜๋ฉด, ์Šค์œ„์น˜(Switch) ์žฅ๋น„์˜ ๊ณ ์žฅ์ด๋‚˜ ์ •์ „์œผ๋กœ ์ธํ•˜์—ฌ ๋ณต์ œ๋ฅผ ํ–ˆ๋Š”๋ฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋น„์Šค๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋ณธ์ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ์–ด๋Š ์žฅ์†Œ์— ์œ„์น˜์‹œ์ผœ์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ง€์ ์ธ ๊ฒฐ์ •(Intelligent decision)์„ ํ•ด์•ผ ํ•œ๋‹ค.

Last updated