Consumer Lag

Kafka Consumer Lag(์ปจ์Šˆ๋จธ ์ง€์—ฐ)์€ Kafka ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ปจ์Šˆ๋จธ๊ฐ€ ํ† ํ”ฝ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์†๋„์™€ ํ”„๋กœ๋“€์„œ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์†๋„ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ค‘์š”ํ•œ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์ด ์ง€ํ‘œ๋Š” Kafka ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ํšจ์œจ์„ฑ๊ณผ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ๋•Œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

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

Consumer Lag๋ž€?

Consumer Lag๋Š” ๊ฐ„๋‹จํžˆ ๋งํ•ด ํ”„๋กœ๋“€์„œ๊ฐ€ ์ „์†กํ•œ ์ตœ์‹  ๋ฉ”์‹œ์ง€์˜ ์˜คํ”„์…‹๊ณผ ์ปจ์Šˆ๋จธ๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๋งˆ์ง€๋ง‰ ๋ฉ”์‹œ์ง€์˜ ์˜คํ”„์…‹ ๊ฐ„์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

Consumer Lag = ํ”„๋กœ๋“€์„œ๊ฐ€ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์˜คํ”„์…‹ - ์ปจ์Šˆ๋จธ๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ปค๋ฐ‹ํ•œ ์˜คํ”„์…‹
  • ํ”„๋กœ๋“€์„œ ์˜คํ”„์…‹: ํ”„๋กœ๋“€์„œ๊ฐ€ ํ˜„์žฌ Kafka์— ๊ธฐ๋กํ•œ ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฉ”์‹œ์ง€์˜ ์˜คํ”„์…‹.

  • ์ปจ์Šˆ๋จธ ์˜คํ”„์…‹: ์ปจ์Šˆ๋จธ๊ฐ€ ํ˜„์žฌ๊นŒ์ง€ Kafka๋กœ๋ถ€ํ„ฐ ์ฝ๊ณ , ์ฒ˜๋ฆฌํ•œ ํ›„ ์ปค๋ฐ‹ํ•œ ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฉ”์‹œ์ง€์˜ ์˜คํ”„์…‹.

๋ฐœ์ƒ ์›๋ฆฌ

Consumer Lag์€ ์ปจ์Šˆ๋จธ๊ฐ€ ํ”„๋กœ๋“€์„œ์˜ ๋ฉ”์‹œ์ง€ ์ „์†ก ์†๋„์— ๋งž์ถฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ผ๋ฐ˜์ ์ธ Consumer Lag ๋ฐœ์ƒ ์›์ธ์ž…๋‹ˆ๋‹ค:

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

  2. ํŒŒํ‹ฐ์…˜ ์ˆ˜์™€ ์ปจ์Šˆ๋จธ ์ˆ˜ ๋ถˆ๊ท ํ˜•: ํŒŒํ‹ฐ์…˜ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ณ , ์ปจ์Šˆ๋จธ ์ˆ˜๊ฐ€ ์ ์œผ๋ฉด ๊ฐ ์ปจ์Šˆ๋จธ๊ฐ€ ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๊ฐ ํŒŒํ‹ฐ์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ํŒŒํ‹ฐ์…˜ ์ˆ˜๋ณด๋‹ค ์ปจ์Šˆ๋จธ ์ˆ˜๊ฐ€ ์ ์„ ๋•Œ๋„ ์ปจ์Šˆ๋จธ๊ฐ€ ์ฒ˜๋ฆฌํ•  ๋ฉ”์‹œ์ง€๊ฐ€ ๋งŽ์•„์ง€๋ฏ€๋กœ ๋ž™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ: ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ ๋ถ€์กฑ ๋˜๋Š” ์ง€์—ฐ์œผ๋กœ ์ธํ•ด ์ปจ์Šˆ๋จธ๊ฐ€ Kafka ๋ธŒ๋กœ์ปค๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ, ์ปจ์Šˆ๋จธ ๋ž™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ: ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์ด ๋ฐœ์ƒํ•˜๋ฉด, ํŒŒํ‹ฐ์…˜์ด ๋‹ค์‹œ ๋ถ„๋ฐฐ๋˜๋Š” ๋™์•ˆ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ฐ€ ์ž ์‹œ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์ด ์žฆ์„ ๊ฒฝ์šฐ, ๊ทธ ๋™์•ˆ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•˜์ง€ ๋ชปํ•ด ์ปจ์Šˆ๋จธ ๋ž™์ด ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ๋ฐฑํ”„๋ ˆ์…”(Backpressure): Kafka ์™ธ๋ถ€ ์‹œ์Šคํ…œ์ด ์ฒ˜๋ฆฌ ๋ณ‘๋ชฉ์„ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋‹ค๋ฅธ ์™ธ๋ถ€ ์„œ๋น„์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋ฉด, ์ปจ์Šˆ๋จธ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์†๋„๋ณด๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์†๋„๊ฐ€ ๋” ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ž™์ด ์Œ“์ž…๋‹ˆ๋‹ค.


Consumer Lag์˜ ์ค‘์š”์„ฑ

Consumer Lag์€ Kafka ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํšจ์œจ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ค‘์š”ํ•œ ์ง€ํ‘œ๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค:

  1. ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ ์ง€ํ‘œ: ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์‹œ์Šคํ…œ์—์„œ ์ปจ์Šˆ๋จธ ๋ž™์ด ์ปค์ง€๋ฉด, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋Šฆ๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ œ๊ณต์ด ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์‹œ์Šคํ…œ ๋ณ‘๋ชฉ ํ˜„์ƒ ํƒ์ง€: ์ปจ์Šˆ๋จธ ๋ž™์€ Kafka ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํŒŒ์•…ํ•˜๋Š” ์ค‘์š”ํ•œ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์ปจ์Šˆ๋จธ ๋ž™์ด ๋ฐœ์ƒํ•˜๋Š” ๊ตฌ๊ฐ„์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ, ์–ด๋–ค ๋ถ€๋ถ„์—์„œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋ฐ์ดํ„ฐ ์†์‹ค ๊ฐ€๋Šฅ์„ฑ ์ฆ๊ฐ€: Kafka๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์˜คํ”„์…‹ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ปจ์Šˆ๋จธ ๋ž™์ด ๋„ˆ๋ฌด ์ปค์ง€๊ณ , ๋ฉ”์‹œ์ง€ ๋ณด๊ด€ ๊ธฐ๊ฐ„(retention period)์ด ์ง€๋‚˜๋Š” ๋™์•ˆ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋ฉด, ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ญ์ œ๋˜์–ด ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Consumer Lag ์ตœ์ ํ™” ๋ฐฉ๋ฒ•

Consumer Lag์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ปจ์Šˆ๋จธ ์ˆ˜ ์กฐ์ •: ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๋‚ด์˜ ์ปจ์Šˆ๋จธ ์ˆ˜๋ฅผ ํŒŒํ‹ฐ์…˜ ์ˆ˜์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜ ์ˆ˜์— ๋น„ํ•ด ์ปจ์Šˆ๋จธ ์ˆ˜๊ฐ€ ์ ์œผ๋ฉด ๋ž™์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ฐ ํŒŒํ‹ฐ์…˜์— ํ•˜๋‚˜์˜ ์ปจ์Šˆ๋จธ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

2. ํŒŒํ‹ฐ์…˜ ์ˆ˜ ์กฐ์ •: ํŒŒํ‹ฐ์…˜ ์ˆ˜๋ฅผ ๋Š˜๋ ค์„œ ๋” ๋งŽ์€ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ณ‘๋ ฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ปจ์Šˆ๋จธ๊ฐ€ ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด, ํŒŒํ‹ฐ์…˜ ์ˆ˜๋ฅผ ๋Š˜๋ ค ๊ฐ ์ปจ์Šˆ๋จธ๊ฐ€ ๋” ์ž‘์€ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ž™์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ปจ์Šˆ๋จธ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ ๊ฐœ์„  : ์ปจ์Šˆ๋จธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ œ๊ฑฐํ•˜๊ณ , ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ์บ์‹ฑ ๊ธฐ๋ฒ• ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ์˜คํ”„์…‹ ์ปค๋ฐ‹ ์ตœ์ ํ™” : ์˜คํ”„์…‹ ์ปค๋ฐ‹ ๋นˆ๋„๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์ž์ฃผ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. auto.commit.interval.ms์™€ ๊ฐ™์€ ์„ค์ •์„ ์ ์ ˆํžˆ ์กฐ์ •ํ•ด, ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ž๋งˆ์ž ์ปค๋ฐ‹ํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ์žฌ์ฒ˜๋ฆฌ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ๋ฐฐ์น˜ ํฌ๊ธฐ ๋ฐ poll ์ฃผ๊ธฐ ์กฐ์ • : ๋ฐฐ์น˜ ํฌ๊ธฐ(batch.size)์™€ poll ์ฃผ๊ธฐ๋ฅผ ์กฐ์ •ํ•ด, ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ์ค„์ด๊ณ , ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Last updated