06.CooperativeStickyAssignor

Consumer Rebalancing Process

  1. Consumer๋“ค์ด JoinGroup ์š”์ฒญ์„ Group Coordinator ์— ๋ณด๋‚ด๋ฉด์„œ ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์ด ์‹œ์ž‘

  2. JoinGroup์˜ ์‘๋‹ต์ด Consumer๋“ค์— ์ „์†ก (Group Leader๋Š” Consumer๋“ค ์ •๋ณด๋ฅผ ์ˆ˜์‹ )

  3. ๋ชจ๋“  ๊ตฌ์„ฑ์›์€ Broker์— SyncGroup ์š”์ฒญ (Group Leader๋Š” ๊ฐ Consumer์˜ Partition ํ• ๋‹น์„ ๊ณ„์‚ฐํ•ด์„œ Group Coordinator์—๊ฒŒ ์ „์†ก)

  4. Broker๋Š” SyncGroup ์‘๋‹ต์—์„œ ๊ฐ Consumer๋ณ„ Partition ํ• ๋‹น์„ ๋ณด๋ƒ„

Eager Rebalancing ํ”„๋กœํ† ์ฝœ

Eager Rebalancing ํ”„๋กœํ† ์ฝœ์€ ์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง

  • ๊ฐ ๊ตฌ์„ฑ์›์€ JoinGroup ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์žฌ์กฐ์ •์— ์ฐธ์—ฌํ•˜๊ธฐ ์ „์— ์†Œ์œ ํ•œ ๋ชจ๋“  Partition์„ ์ทจ์†Œ

  • ์•ˆ์ „๋ฉด์—์„œ๋Š” ์ข‹์ง€๋งŒ ์ด โ€œStop-the-Worldโ€ ํ”„๋กœํ† ์ฝœ์€ ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์ด ์žฌ์กฐ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ 

Incremental Cooperative Rebalancing Protocol

Eager Rebalancing ํ”„๋กœํ† ์ฝœ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ํ”„๋กœํ† ์ฝœ.

  • Revoke๋  Partition, ๋ณ€ํ•˜์ง€ ์•Š๋Š” Partition๊ณผ ์ƒˆ๋กœ ํ• ๋‹นํ•  Partition์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ด€๋ฆฌ

์ด์ƒ์ ์ธ Consumer Rebalancing ํ”„๋กœํ† ์ฝœ

Consumer A, B๊ฐ€ Consumeํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด Consumer C๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •.

  • Consumer A์— ํ• ๋‹น๋œ Partition์ค‘ ํ•˜๋‚˜๋งŒ Consumer C๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ด์ƒ์ ์ž„

  • ์ „์ฒด ์žฌ์กฐ์ • ๋™์•ˆ ๋ชจ๋‘ ์ •์ง€ ์ƒํƒœ๋กœ ์žˆ๋Š” ๋Œ€์‹ , Consumer A๋งŒ ํ•˜๋‚˜์˜ Partition์„ ์ทจ์†Œํ•˜๋Š” ๋™์•ˆ๋งŒ ๊ฐ€๋™ ์ค‘์ง€.

  • Issue: Consumer๋Š” ์ž์‹ ์˜ Partition ์ค‘ ์–ด๋Š ๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์žฌํ• ๋‹น๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•จ.

Cooperative Sticky Assignor

  • Rebalancing์„ ๋‘ ๋ฒˆ ์ˆ˜ํ–‰

  • Basic Cooperative Rebalancing ํ”„๋กœํ† ์ฝœ์€ Apache Kafka 2.4 ์—์„œ ๋„์ž…

  • Incremental Cooperative Rebalancing ํ”„๋กœํ† ์ฝœ์€ Apache Kafka 2.5์—์„œ ์ถ”๊ฐ€

  • ๋นˆ๋ฒˆํ•˜๊ฒŒ Rebalancing๋˜๋Š” ์ƒํ™ฉ์ด๊ฑฐ๋‚˜ ์Šค์ผ€์ผ ์ธ/์•„์›ƒ์œผ๋กœ ์ธํ•œ ๋‹ค์šดํƒ€์ž„์ด ์šฐ๋ ค๊ฐ€ ๋œ๋‹ค๋ฉด, ์ตœ์‹  ๋ฒ„์ „์˜ Kafka(2.5 ์ด์ƒ)๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

  • JoinGroup ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด์„œ ์‹œ์ž‘ํ•˜์ง€๋งŒ, ์†Œ์œ ํ•œ ๋ชจ๋“  Partition์„ ๋ณด์œ ํ•˜๊ณ , ๊ทธ ์ •๋ณด๋ฅผ Group Coordinator์—๊ฒŒ ๋ณด๋ƒ„

  • Group Leader๋Š” ์›ํ•˜๋Š” ๋Œ€๋กœ Consumer์— Partition์„ ํ• ๋‹นํ•˜์ง€๋งŒ, ์†Œ์œ ๊ถŒ์„ ์ด์ „ํ•˜๋Š” Partition๋“ค๋งŒ ์ทจ์†Œํ•จ

  • Partition์„ ์ทจ์†Œํ•œ ๊ตฌ์„ฑ์›์€ ๊ทธ๋ฃน์— ReJoinํ•˜์—ฌ ์ทจ์†Œ๋œ Partition์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‘ ๋ฒˆ์งธ ์žฌ์กฐ์ •์„ ํŠธ๋ฆฌ๊ฑฐ

  • 1st rebalance์—์„œ Consumer๋Š” ์ž์‹ ์˜ Partition ์ค‘ ์–ด๋Š ๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์žฌํ• ๋‹น๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ฒŒ ๋จ

Last updated