๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Kafka

Replication

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

 

์ด์ „ ๋ฉ€ํ‹ฐ ๋…ธ๋“œ ์นดํ”„์นด - 1, ๋ฉ€ํ‹ฐ ๋…ธ๋“œ ์นดํ”„์นด - 2 ํฌ์ŠคํŒ…์—์„œ ํ† ํ”ฝ ์ƒ์„ฑ ์‹œ replication-factor ์˜ต์…˜์„ ํ†ตํ•ด ํ† ํ”ฝ์˜ ๊ฐ ํŒŒํ‹ฐ์…˜๋“ค์„ ์—ฌ๋Ÿฌ ๋ธŒ๋กœ์ปค์— ๋ณต์ œํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํŒŒํ‹ฐ์…˜ ๋ณต์ œ, Replication์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฉ€ํ‹ฐ ๋…ธ๋“œ ์นดํ”„์นด์˜ ํ•ต์‹ฌ์€ ๋ฐ”๋กœ Replication์ž…๋‹ˆ๋‹ค. Replication์„ ํ†ตํ•ด์„œ ๊ฐœ๋ณ„ ๋…ธ๋“œ(๋ธŒ๋กœ์ปค)์˜ ์žฅ์• ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋†’์€ ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

Replication์€ ํ† ํ”ฝ ์ƒ์„ฑ ์‹œ replication-factor ๊ฐ’์„ ํ†ตํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ replication-factor๊ฐ€ 3์ด๋ฉด ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜, ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์„ ํฌํ•จํ•ด ๋ชจ๋‘ 3๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ ๊ฐ€์ง์„ ์˜๋ฏธํ•˜๋ฉฐ, ๋ธŒ๋กœ์ปค 3๊ฐœ์— replication-factor๊ฐ€ 3์ผ ๊ฒฝ์šฐ ์ด 9๊ฐœ์˜ ํŒŒํ‹ฐ์…˜ ์ •๋ณด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜: https://damdam-kim.tistory.com/17

 

๊ทธ๋ฆฌ๊ณ  replication-factor์˜ ๊ฐœ์ˆ˜๋Š” ๋ธŒ๋กœ์ปค์˜ ์ด๊ฐœ์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

replication-factor์— ์˜ํ•ด ์ƒ์„ฑ๋  ๋•Œ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜, ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์„ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํ† ํ”ฝ์— ๋Œ€ํ•œ read/write๋Š” ๋ชจ๋‘ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜๊ณผ ์ด๋ฃจ์–ด์ง€๋ฉฐ,

๋ณต์ œ ๋ฐฉํ–ฅ์€ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜ → ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜ ๋ฐฉํ–ฅ์œผ๋กœ ๋ณต์ œ๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

 

๋ฆฌ๋” ํŒŒํ‹ฐ์…˜๊ณผ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์˜ ๋‹จ๊ณ„๋ณ„ Replication

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

 

์œ„ ๊ทธ๋ฆผ์—์„œ peter-test01 ํ† ํ”ฝ์ด 1๊ฐœ์˜ ํŒŒํ‹ฐ์…˜๊ณผ 3๊ฐœ์˜ Replication Factor๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š” ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜๋งŒ์ด 0๋ฒˆ ์˜คํ”„์…‹์— message1์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

๋ฆฌ๋”๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ์•„์ง ํŒ”๋กœ์›Œ๋“ค์€ ๋ฆฌ๋”์—๊ฒŒ ์ €์žฅ๋œ ๋ฉ”์‹œ์ง€๋ฅผ Replication ํ•˜๊ธฐ ์ „์ž…๋‹ˆ๋‹ค.

 

 

ํŒ”๋กœ์›Œ๋“ค์€ ๋ฆฌ๋”์—๊ฒŒ 0๋ฒˆ ์˜คํ”„์…‹ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ(fetch) ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€ message1์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•˜๊ณ  message1 ๋ฉ”์‹œ์ง€๋ฅผ Replication ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

ํ˜„ ์ƒํƒœ์—์„œ ๋ฆฌ๋”๋Š” ๋ชจ๋“  ํŒ”๋กœ์›Œ๊ฐ€ 0๋ฒˆ ์˜คํ”„์…‹ ๋ฉ”์‹œ์ง€๋ฅผ Replication ํ•˜๊ธฐ ์œ„ํ•œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ํŒ”๋กœ์›Œ๋“ค์ด 0๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ๋™์ž‘์„ ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์‹คํŒจํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

 

๋ฉ”์‹œ์ง• ํ ์‹œ์Šคํ…œ ์ค‘ ๋ž˜๋น— MQ์˜ ํŠธ๋žœ์žญ์…˜ ๋ชจ๋“œ์—์„œ๋Š” ๋ชจ๋“  ๋ฏธ๋Ÿฌ(ํŒ”๋กœ์›Œ)๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜๋Š”์ง€์— ๋Œ€ํ•œ ACK๋ฅผ ๋ฆฌ๋”์—๊ฒŒ ๋ฆฌํ„ดํ•˜๋ฏ€๋กœ, ๋ฆฌ๋”๋Š” ๋ฏธ๋Ÿฌ(ํŒ”๋กœ์›Œ)๋“ค์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์นดํ”„์นด์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฆฌ๋”์™€ ํŒ”๋กœ์›Œ ์‚ฌ์ด์—์„œ ACK๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ†ต์‹ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์นดํ”„์นด๋Š” ๋ฆฌ๋”์™€ ํŒ”๋กœ์›Œ ์‚ฌ์ด์— ACK ํ†ต์‹ ์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ Replication ๋™์ž‘์˜ ์„ฑ๋Šฅ์„ ๋”์šฑ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ ๋ฆฌ๋”๋Š” 1๋ฒˆ ์˜คํ”„์…‹์˜ ์œ„์น˜์— ๋‘ ๋ฒˆ์งธ ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€์ธ message2๋ฅผ ํ”„๋กœ๋“€์„œ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋’ค ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

0๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ๋™์ž‘์„ ๋งˆ์นœ ํŒ”๋กœ์›Œ๋“ค์€ ๋ฆฌ๋”์—๊ฒŒ 1๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ํŒ”๋กœ์›Œ๋“ค๋กœ๋ถ€ํ„ฐ 1๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ์š”์ฒญ์„ ๋ฐ›์€ ๋ฆฌ๋”๋Š” ํŒ”๋กœ์›Œ๋“ค์˜ 0๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ๋™์ž‘์ด ์„ฑ๊ณตํ–ˆ์Œ์„ ์ธ์ง€ํ•˜๊ณ , ์˜คํ”„์…‹ 0์— ๋Œ€ํ•ด ์ปค๋ฐ‹ ํ‘œ์‹œ๋ฅผ ํ•œ ํ›„ ํ•˜์ด์›Œํ„ฐ๋งˆํฌ๋ฅผ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“ข ํ•˜์ด์›Œํ„ฐ๋งˆํฌ (High Water Mark)

ํ•˜์ด์›Œํ„ฐ๋งˆํฌ๋ž€ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์—์„œ ๋ณต์ œ๊ฐ€ ์™„๋ฃŒ๋œ ์˜คํ”„์…‹ ์œ„์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ํŒ”๋กœ์›Œ๋“ค๋กœ๋ถ€ํ„ฐ 1๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ์š”์ฒญ์„ ๋ฐ›์€ ๋ฆฌ๋”๋Š” ์‘๋‹ต์— 0๋ฒˆ ์˜คํ”„์…‹ message1 ๋ฉ”์‹œ์ง€๊ฐ€ ์ปค๋ฐ‹๋˜์—ˆ๋‹ค๋Š” ๋‚ด์šฉ๋„ ํ•จ๊ป˜ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ข ํŒ”๋กœ์›Œ๊ฐ€ 0๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication์„ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด, ํŒ”๋กœ์›Œ๋Š” 1๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ์š”์ฒญ์ด ์•„๋‹Œ 0๋ฒˆ ์˜คํ”„์…‹์— ๋Œ€ํ•œ Replication ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋ฆฌ๋”๋Š” ํŒ”๋กœ์›Œ๋“ค์ด ๋ณด๋‚ด๋Š” Replication ์š”์ฒญ์˜ ์˜คํ”„์…‹์„ ๋ณด๊ณ , ํŒ”๋กœ์›Œ๋“ค์ด ์–ด๋Š ์œ„์น˜์˜ ์˜คํ”„์…‹๊นŒ์ง€ Replication์„ ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Replication์˜ ๋งˆ์ง€๋ง‰ ๊ณผ์ •์œผ๋กœ, ๋ฆฌ๋”์˜ ์‘๋‹ต์„ ๋ฐ›์€ ๋ชจ๋“  ํŒ”๋กœ์›Œ๋Š” 0๋ฒˆ ์˜คํ”„์…‹ ๋ฉ”์‹œ์ง€๊ฐ€ ์ปค๋ฐ‹๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•˜๊ฒŒ ๋˜๊ณ , ๋ฆฌ๋”์™€ ๋™์ผํ•˜๊ฒŒ ์ปค๋ฐ‹์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  1๋ฒˆ ์˜คํ”„์…‹ ๋ฉ”์‹œ์ง€์ธ message2๋ฅผ Replication ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ณผ์ •์„ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋™์ผํ•œ ํŒŒํ‹ฐ์…˜ ๋‚ด์˜ ๋ฆฌ๋”์™€ ํŒ”๋กœ์›Œ ๊ฐ„ ๋ฉ”์‹œ์ง€์˜ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’กReplication ๊ณผ์ •์„œ ์ค‘์š”ํ•œ ์ ์€ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๋“ค๊ณผ ๋‹ฌ๋ฆฌ ์นดํ”„์นด๋Š” ACK ํ†ต์‹  ๋‹จ๊ณ„๋ฅผ ์ œ๊ฑฐํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฉ”์‹œ์ง€ ํ•˜๋‚˜๋ฅผ Replication ํ•˜๋Š” ๋ฐ ์ด 2ํšŒ์˜ ACK ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด 1,000๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋Š” 2,000ํšŒ์˜ ACK ํ†ต์‹ ์ด ํ•„์š”ํ•˜๋ฉฐ, 1๋งŒ ๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋Š” 2๋งŒ ํšŒ์˜ ACK ํ†ต์‹ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ACK ํ†ต์‹ ์„ ์ œ์™ธํ•œ ์นดํ”„์นด์˜ ๋ฆฌ๋”๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์— ๋”์šฑ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ACK ํ†ต์‹ ์„ ์ œ์™ธํ–ˆ์Œ์—๋„ ๋ฆฌ๋”, ํŒ”๋กœ์›Œ ๊ฐ„์˜ Replication ๋™์ž‘์ด ๋งค์šฐ ๋น ๋ฅด๋ฉด์„œ๋„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ์นดํ”„์นด์—์„œ ๋ฆฌ๋”์™€ ํŒ”๋กœ์›Œ๋“ค์˜ Replication ๋™์ž‘ ๋ฐฉ์‹์€ ๋ฆฌ๋”๊ฐ€ ํ‘ธ์‹œ(push)ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ํŒ”๋กœ์›Œ๋“ค์ด ํ’€(pull)ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”๋ฐ, ํ’€ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•œ ์ด์œ ๋„ Replication ๋™์ž‘์—์„œ ๋ฆฌ๋”์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. 

 

 

 

์ฐธ๊ณ  ์ž๋ฃŒ

'Kafka' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฆฌ๋”์—ํฌํฌ & ๋ณต๊ตฌ  (0) 2023.05.01
ISR(In Sync Replica)  (0) 2023.05.01
๋ฉ€ํ‹ฐ ๋…ธ๋“œ ์นดํ”„์นด - 2  (0) 2023.05.01
๋ฉ€ํ‹ฐ ๋…ธ๋“œ ์นดํ”„์นด - 1  (0) 2023.05.01
KafkaConsumer  (0) 2023.04.17

๋Œ“๊ธ€