Kafka

์ปจํŠธ๋กค๋Ÿฌ

Soono991 2023. 5. 1. 22:09
๐Ÿ’ก ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ปจํŠธ๋กค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ ์ค‘ ํ•˜๋‚˜์˜ ๋ธŒ๋กœ์ปค๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋˜๋ฉฐ, ํŒŒํ‹ฐ์…˜์˜ ISR ๋ฆฌ์ŠคํŠธ ์ค‘์—์„œ ๋ฆฌ๋”๋ฅผ ์„ ์ถœํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋”๋ฅผ ์„ ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ISR ๋ฆฌ์ŠคํŠธ ์ •๋ณด๋Š” ์•ˆ์ „ํ•œ ์ €์žฅ์†Œ์— ๋ณด๊ด€๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ๊ฐ€์šฉ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•ด ์ฃผํ‚คํผ์— ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ธŒ๋กœ์ปค๊ฐ€ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์„ ์˜ˆ์˜์ฃผ์‹œํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋งŒ์•ฝ ๋ธŒ๋กœ์ปค์˜ ์‹คํŒจ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์ฆ‰์‹œ ISR ๋ฆฌ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ƒˆ๋กœ์šด ํŒŒํ‹ฐ์…˜ ๋ฆฌ๋”๋กœ ์„ ์ถœํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ์ƒˆ๋กœ์šด ๋ฆฌ๋”์˜ ์ •๋ณด๋ฅผ ์ฃผํ‚คํผ์— ๊ธฐ๋กํ•˜๊ณ , ๋ณ€๊ฒฝ๋œ ์ •๋ณด๋ฅผ ๋ชจ๋“  ๋ธŒ๋กœ์ปค์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

ํŒŒํ‹ฐ์…˜์˜ ๋ฆฌ๋”๊ฐ€ ๋‹ค์šด๋๋‹ค๋Š” ๊ฒƒ์€ ํ•ด๋‹น ํŒŒํ‹ฐ์…˜์˜ ๋ฆฌ๋”๊ฐ€ ์—†๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ์ธ ํ”„๋กœ๋“€์„œ๋‚˜ ์ปจ์Šˆ๋จธ๊ฐ€ ํ•ด๋‹น ํŒŒํ‹ฐ์…˜์œผ๋กœ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ชจ๋“  ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋™์ž‘์€ ์‹คํŒจํ•˜๊ฒŒ ๋˜๊ณ , ํด๋ผ์ด์–ธํŠธ์— ์„ค์ •๋˜์–ด ์žˆ๋Š” ์žฌ์‹œ๋„ ์ˆซ์ž๋งŒํผ ์žฌ์‹œ๋„๋ฅผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๋“ค์ด ์žฌ์‹œ๋„ํ•˜๋Š” ์‹œ๊ฐ„ ๋‚ด์— ๋ฆฌ๋” ์„ ์ถœ ์ž‘์—…์ด ๋น ๋ฅด๊ฒŒ ์ด๋ค„์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฆฌ๋” ์„ ์ถœ ๊ณผ์ •์€ ์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜์ด ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ, ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ƒˆ๋กœ์šด ๋ฆฌ๋”๋ฅผ ์„ ์ถœํ•˜๊ณ  ๋ฆฌ๋” ์ •๋ณด๋ฅผ ์ฃผํ‚คํผ์— ๊ธฐ๋กํ•˜๋ฉฐ ๋‹ค๋ฅธ ๋ธŒ๋กœ์ปค๋“ค์—๊ฒŒ ์—…๋ฐ์ดํŠธ ์ •๋ณด๋ฅผ ์ „ํŒŒํ•˜๋Š” ๋ฐ๋Š” ๊ทธ๋ฆฌ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•ด ๋ฆฌ๋” ์„ ์ถœ ์ž‘์—…์ด ์•ฝ 0.2์ดˆ๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜์€ 0.2์ดˆ ๋งŒ์— ์™„๋ฃŒ๋˜๋Š” ๋ฐ˜๋ฉด 1๋งŒ ๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•ด ๋ฆฌ๋” ์„ ์ถœ์ด ์ด๋ค„์ ธ์•ผ ํ•œ๋‹ค๋ฉด, ์ „์ฒด ์ž‘์—… ์†Œ์š”์‹œ๊ฐ„์€ ์•ฝ 2,000์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

1๋Œ€์˜ ๋ธŒ๋กœ์ปค ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋ฆฌ๋” ์„ ์ถœ ์ž‘์—…์œผ๋กœ ์นดํ”„์นด์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— 30์—ฌ ๋ถ„๊ฐ„ ํ†ต์‹ ์ด ๋Š์–ด์ง€๋Š” ์‚ฌํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ถ€์„œ๋“ค์€ ๋ชจ๋‘ ์žฅ์•  ์ƒํ™ฉ์„ ๊ฒช๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

2018๋…„ 11์›” ๋ฆด๋ฆฌ์Šค ๋œ 1.1.0 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ๋ฆฌ๋” ์„ ์ถœ ์ž‘์—… ์†๋„๊ฐ€ ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

์นดํ”„์นด ๋ฒ„์ „ 1.0.0์—์„œ 6๋ถ„ 30์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋˜ ์ž‘์—…์ด ๋ถˆํ•„์š”ํ•œ ๋กœ๊น…์„ ์—†์• ๊ณ  ์ฃผํ‚คํผ ๋น„๋™๊ธฐ API๊ฐ€ ๋ฐ˜์˜๋œ 1.1.0์—์„œ๋Š” ์•ฝ 3์ดˆ ๋งŒ์— ์™„๋ฃŒ๋์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : https://www.confluent.io/blog/apache-kafka-supports-200k-partitions-per-cluster/

 

์ œ์–ด๋œ ๋ธŒ๋กœ์ปค ์ข…๋ฃŒ

 

์ œ์–ด๋œ ๋ธŒ๋กœ์ปค ์ข…๋ฃŒ๋ž€, ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ธŒ๋กœ์ปค์˜ ์‹คํŒจ๋‚˜ ์žฅ์• ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ด€๋ฆฌ์ž์— ์˜ํ•ด ์ด๋ค„์ง€๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ์ข…๋ฃŒ ๋˜๋Š” ์•ˆ์ „ํ•œ ์ข…๋ฃŒ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ œ์–ด๋œ ์ข…๋ฃŒ์™€ ์žฅ์• ๋กœ ์ธํ•œ ๊ธ‰์ž‘์Šค๋Ÿฌ์šด ์ข…๋ฃŒ์˜ ์ฐจ์ด๋Š” ๋ฐ”๋กœ ๋‹ค์šดํƒ€์ž„์ž…๋‹ˆ๋‹ค.

์ œ์–ด๋œ ์ข…๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์นดํ”„์นด ๋‚ด๋ถ€์ ์œผ๋กœ ํŒŒํ‹ฐ์…˜๋“ค์˜ ๋‹ค์šดํƒ€์ž„์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ข ๋ธŒ๋กœ์ปค๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „, ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํ•ด๋‹น ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฆฌ๋”๋กœ ํ• ๋‹น๋œ ์ „์ฒด ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•ด ๋ฆฌ๋” ์„ ์ถœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์ œ์–ด๋œ ์ข…๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด controlled.shutdown.enable ์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

๋ฆฌ๋” ๋ถ„ํฌ์˜ ๋ถˆ๊ท ํ˜•

๋ฆฌ๋” ๋ถ„ํฌ์˜ ๋ถˆ๊ท ํ˜•์ด๋ž€ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์ด ๊ฐ ๋ธŒ๋กœ์ปค๋งˆ๋‹ค ๊ณจ๊ณ ๋ฃจ ๋ถ„ํฌ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

 

Preferred Leader Election

1๋ฒˆ์ฒ˜๋Ÿผ m-brk-topic-dd ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด๋ฉด Replicas์˜ ๊ฐ€์žฅ ์ฒซ ๋ธŒ๋กœ์ปค๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Replicas์˜ ์ฒซ ๋ธŒ๋กœ์ปค๋Š” ๋‹ค๋ฅธ ๋ง๋กœ Preferred Leader๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ํŒŒํ‹ฐ์…˜์˜ ๋ฆฌ๋”๊ฐ€ Preferred Leader์™€ ๋™์ผํ•œ ๊ฒฝ์šฐ Preferred Leader์˜ ๊ท ํ˜•์ด ๋งž๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

 

ํ† ํ”ฝ์˜ ์ •๋ณด๋ฅผ ๋จผ์ € ์กฐํšŒ ํ›„ ๋ธŒ๋กœ์ปค 3์„ ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ํ† ํ”ฝ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋ฉด ํŒŒํ‹ฐ์…˜ 1๋ฒˆ์— ๋Œ€ํ•œ ๋ฆฌ๋”๋Š” ๋ธŒ๋กœ์ปค 1์ด ์„ ์ถœ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ๋ธŒ๋กœ์ปค 3์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, ์ผ์ • ์‹œ๊ฐ„(๊ธฐ๋ณธ 300์ดˆ) ์ดํ›„ ๋ฆฌ๋”๋ฅผ ์žฌ์„ ์ถœํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ ์ดˆ๊ธฐ์— ํ• ๋‹น๋œ Preferred Leader๋กœ ์„ ์ถœํ•˜์—ฌ ์•ž์„œ ์„ค๋ช…ํ•œ Preferred Leader์˜ ๊ท ํ˜•์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋งˆ์ง€๋ง‰ 3๋ฒˆ์ฒ˜๋Ÿผ ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„ ๋‹ค์‹œ ํ† ํ”ฝ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋ฉด ๋ฆฌ๋”๊ฐ€ Preferred Leader์— ๋งž์ถฐ ๋ณ€๊ฒฝ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Unclean Leader Election

๊ธฐ์กด์˜ ๋ฆฌ๋” ๋ธŒ๋กœ์ปค๊ฐ€ ์˜ค๋žœ ๊ธฐ๊ฐ„ ์‚ด์•„๋‚˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ณต์ œ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€, ์ฆ‰ ISR์ด ์•„๋‹Œ OSR(Out of Sync Replica)์ธ ํŒ”๋กœ์›Œ ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฆฌ๋”๊ฐ€ ๋ ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๊ธฐ์กด์˜ ๋ฆฌ๋” ๋ธŒ๋กœ์ปค๊ฐ€ ๊ฐ€์ง„ ๋ฉ”์‹œ์ง€ ์†์‹ค ์—ฌ๋ถ€๋ฅผ ๊ฐ์ˆ˜ํ•˜๊ณ  ๋ณต์ œ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ํŒ”๋กœ์›Œ ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฆฌ๋”๊ฐ€ ๋˜๊ฒŒ ํ•˜๋ ค๋ฉด unclean.leader.election.enable ์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ด ์˜ต์…˜์ด ์žˆ๋Š” ์ด์œ ๋Š” ์นดํ”„์นด๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ์‹ค์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์นดํ”„์นด ์„œ๋ฒ„๊ฐ€ ์ค‘์ง€๋˜๋Š” ์ƒํ™ฉ์„ ๋ง‰์•„์„œ ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋ ค๋Š” ๋ชฉ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ unclean.leader.election.enable ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ISR์—์„œ ๋” ์ด์ƒ ๋ฆฌ๋”๋กœ ์„ ์ถœ๋  ๋ธŒ๋กœ์ปค๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฆฌ๋”๋Š” none์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

 

์ปจ์Šˆ๋จธ๋Š” ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋”๊ฐ€ none์ผ ๊ฒฝ์šฐ ์ปจ์Šˆ๋จธ๋Š” ๋” ์ด์ƒ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=freepsw&logNo=221028179182

 

 

 

 

์ฐธ๊ณ  ์ž๋ฃŒ