06.CooperativeStickyAssignor
Last updated
Last updated
Consumer๋ค์ด JoinGroup ์์ฒญ์ Group Coordinator ์ ๋ณด๋ด๋ฉด์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ์์
JoinGroup์ ์๋ต์ด Consumer๋ค์ ์ ์ก (Group Leader๋ Consumer๋ค ์ ๋ณด๋ฅผ ์์ )
๋ชจ๋ ๊ตฌ์ฑ์์ Broker์ SyncGroup ์์ฒญ (Group Leader๋ ๊ฐ Consumer์ Partition ํ ๋น์ ๊ณ์ฐํด์ Group Coordinator์๊ฒ ์ ์ก)
Broker๋ SyncGroup ์๋ต์์ ๊ฐ Consumer๋ณ Partition ํ ๋น์ ๋ณด๋
Eager Rebalancing ํ๋กํ ์ฝ์ ์ต๋ํ ๋จ์ํ๊ฒ ์ ์งํ๊ธฐ ์ํด ๋ง๋ค์ด์ง
๊ฐ ๊ตฌ์ฑ์์ JoinGroup ์์ฒญ์ ๋ณด๋ด๊ณ ์ฌ์กฐ์ ์ ์ฐธ์ฌํ๊ธฐ ์ ์ ์์ ํ ๋ชจ๋ Partition์ ์ทจ์
์์ ๋ฉด์์๋ ์ข์ง๋ง ์ด โStop-the-Worldโ ํ๋กํ ์ฝ์ ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ด ์ฌ์กฐ์ ๊ธฐ๊ฐ ๋์ ์์ ์ ์ํํ ์ ์๋ ๋จ์
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 ์ค ์ด๋ ๊ฒ์ด ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฌํ ๋น๋์ด์ผ ํ๋์ง ์์ง ๋ชปํจ.
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 ์ค ์ด๋ ๊ฒ์ด ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฌํ ๋น๋์ด์ผ ํ๋์ง ์๊ฒ ๋จ