Consumer Lag
Kafka Consumer Lag(์ปจ์๋จธ ์ง์ฐ)์ Kafka ํด๋ฌ์คํฐ์์ ์ปจ์๋จธ๊ฐ ํ ํฝ์ ๋ฉ์์ง๋ฅผ ์๋นํ๋ ์๋์ ํ๋ก๋์๊ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๋ ์๋ ๊ฐ์ ์ฐจ์ด๋ฅผ ๋ํ๋ด๋ ์ค์ํ ์งํ์ ๋๋ค. ์ด ์งํ๋ Kafka ์์คํ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํจ์จ์ฑ๊ณผ ์ง์ฐ ์๊ฐ์ ๋ชจ๋ํฐ๋งํ ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
์ปจ์๋จธ ๋์ด ์ปค์ง๋ฉด, ์ปจ์๋จธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ์ฒ๋ฆฌํ์ง ๋ชปํ๊ณ ์๋ ์ํฉ์ ์๋ฏธํ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ์ง์ฐ๋๊ฑฐ๋ ๋์ ๋๊ณ ์์์ ๋ํ๋ ๋๋ค. ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ ์์๋ ์ด ์ปจ์๋จธ ๋์ด ๋ฎ์์ผ ํ๋ฉฐ, ๋์ด ๊ณ์ํด์ ์์ด๋ฉด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ณ๋ชฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
Consumer Lag๋?
Consumer Lag๋ ๊ฐ๋จํ ๋งํด ํ๋ก๋์๊ฐ ์ ์กํ ์ต์ ๋ฉ์์ง์ ์คํ์ ๊ณผ ์ปจ์๋จธ๊ฐ ์ฒ๋ฆฌํ ๋ง์ง๋ง ๋ฉ์์ง์ ์คํ์ ๊ฐ์ ์ฐจ์ด์ ๋๋ค.
ํ๋ก๋์ ์คํ์ : ํ๋ก๋์๊ฐ ํ์ฌ Kafka์ ๊ธฐ๋กํ ๊ฐ์ฅ ์ต๊ทผ ๋ฉ์์ง์ ์คํ์ .
์ปจ์๋จธ ์คํ์ : ์ปจ์๋จธ๊ฐ ํ์ฌ๊น์ง Kafka๋ก๋ถํฐ ์ฝ๊ณ , ์ฒ๋ฆฌํ ํ ์ปค๋ฐํ ๊ฐ์ฅ ์ต๊ทผ ๋ฉ์์ง์ ์คํ์ .
๋ฐ์ ์๋ฆฌ
Consumer Lag์ ์ปจ์๋จธ๊ฐ ํ๋ก๋์์ ๋ฉ์์ง ์ ์ก ์๋์ ๋ง์ถฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ์ง ๋ชปํ ๋ ๋ฐ์ํฉ๋๋ค. ๋ค์์ ์ผ๋ฐ์ ์ธ Consumer Lag ๋ฐ์ ์์ธ์ ๋๋ค:
์ปจ์๋จธ์ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆด ๋: ์ปจ์๋จธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณต์กํ ์ฒ๋ฆฌ ์์ ์ ์ํํ๊ฑฐ๋, ๋นํจ์จ์ ์ธ ์ฝ๋๋ก ์ธํด ๋ฉ์์ง ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆด ๋ ๋์ด ๋ฐ์ํฉ๋๋ค. ์ปจ์๋จธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋๊ฐ ํ๋ก๋์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์๋๋ณด๋ค ๋๋ฆฌ๋ค๋ฉด, ์ฒ๋ฆฌ๋์ง ์์ ๋ฉ์์ง๊ฐ ๊ณ์ ์์ด๊ฒ ๋ฉ๋๋ค.
ํํฐ์ ์์ ์ปจ์๋จธ ์ ๋ถ๊ท ํ: ํํฐ์ ์๊ฐ ๋๋ฌด ๋ง๊ณ , ์ปจ์๋จธ ์๊ฐ ์ ์ผ๋ฉด ๊ฐ ์ปจ์๋จธ๊ฐ ์ฌ๋ฌ ํํฐ์ ์ ์ฒ๋ฆฌํด์ผ ํ๋ฏ๋ก, ๊ฐ ํํฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋ฐ๋๋ก, ํํฐ์ ์๋ณด๋ค ์ปจ์๋จธ ์๊ฐ ์ ์ ๋๋ ์ปจ์๋จธ๊ฐ ์ฒ๋ฆฌํ ๋ฉ์์ง๊ฐ ๋ง์์ง๋ฏ๋ก ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋คํธ์ํฌ ๋ฌธ์ : ๋คํธ์ํฌ ๋์ญํญ ๋ถ์กฑ ๋๋ ์ง์ฐ์ผ๋ก ์ธํด ์ปจ์๋จธ๊ฐ Kafka ๋ธ๋ก์ปค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์ค์ง ๋ชปํ๋ ๊ฒฝ์ฐ, ์ปจ์๋จธ ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ฆฌ๋ฐธ๋ฐ์ฑ: ์ปจ์๋จธ ๊ทธ๋ฃน ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋ฐ์ํ๋ฉด, ํํฐ์ ์ด ๋ค์ ๋ถ๋ฐฐ๋๋ ๋์ ๋ฉ์์ง ์ฒ๋ฆฌ๊ฐ ์ ์ ์ค๋จ๋ฉ๋๋ค. ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ์ฆ์ ๊ฒฝ์ฐ, ๊ทธ ๋์ ๋ฉ์์ง๋ฅผ ์๋นํ์ง ๋ชปํด ์ปจ์๋จธ ๋์ด ์ปค์ง ์ ์์ต๋๋ค.
๋ฐฑํ๋ ์ (Backpressure): Kafka ์ธ๋ถ ์์คํ ์ด ์ฒ๋ฆฌ ๋ณ๋ชฉ์ ์ผ์ผํค๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ ์์คํ , ๋ค๋ฅธ ์ธ๋ถ ์๋น์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ฉด, ์ปจ์๋จธ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ์๋๋ณด๋ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์๋๊ฐ ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๋์ด ์์ ๋๋ค.
Consumer Lag์ ์ค์์ฑ
Consumer Lag์ Kafka ์์คํ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํจ์จ์ฑ์ ๋ํ๋ด๋ ์ค์ํ ์งํ๋ก, ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ค์ํฉ๋๋ค:
์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฑ๋ฅ ์งํ: ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์์คํ ์์ ์ปจ์๋จธ ๋์ด ์ปค์ง๋ฉด, ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฑ๋ฅ์ด ์ ํ๋๊ณ ์์์ ์๋ฏธํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ฆ๊ฒ ์ฒ๋ฆฌ๋๋ฉด ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ๊ณต์ด ์ด๋ ค์์ง ์ ์์ต๋๋ค.
์์คํ ๋ณ๋ชฉ ํ์ ํ์ง: ์ปจ์๋จธ ๋์ Kafka ์์คํ ๋ด์์ ๋ณ๋ชฉ ํ์์ ํ์ ํ๋ ์ค์ํ ์งํ์ ๋๋ค. ์ปจ์๋จธ ๋์ด ๋ฐ์ํ๋ ๊ตฌ๊ฐ์ ๋ชจ๋ํฐ๋งํ์ฌ, ์ด๋ค ๋ถ๋ถ์์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๊ณ ์๋์ง๋ฅผ ์ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ: Kafka๋ ๋ฉ์์ง๋ฅผ ์คํ์ ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค. ๋ง์ฝ ์ปจ์๋จธ ๋์ด ๋๋ฌด ์ปค์ง๊ณ , ๋ฉ์์ง ๋ณด๊ด ๊ธฐ๊ฐ(retention period)์ด ์ง๋๋ ๋์ ์ปจ์๋จธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ฉด, ๋ฉ์์ง๊ฐ ์ญ์ ๋์ด ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
Consumer Lag ์ต์ ํ ๋ฐฉ๋ฒ
Consumer Lag์ ์ค์ด๊ธฐ ์ํด์๋ ๋ค์ํ ์ต์ ํ ๋ฐฉ๋ฒ์ ์ ์ฉํ ์ ์์ต๋๋ค.
1. ์ปจ์๋จธ ์ ์กฐ์ : ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์ ์ปจ์๋จธ ์๋ฅผ ํํฐ์ ์์ ๋ง๊ฒ ์กฐ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํํฐ์ ์์ ๋นํด ์ปจ์๋จธ ์๊ฐ ์ ์ผ๋ฉด ๋์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๊ฐ ํํฐ์ ์ ํ๋์ ์ปจ์๋จธ๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ์ด์์ ์ ๋๋ค.
2. ํํฐ์ ์ ์กฐ์ : ํํฐ์ ์๋ฅผ ๋๋ ค์ ๋ ๋ง์ ์ปจ์๋จธ๊ฐ ๋ณ๋ ฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ์กฐ์ ํฉ๋๋ค. ์ปจ์๋จธ๊ฐ ์ถฉ๋ถํ๋ค๋ฉด, ํํฐ์ ์๋ฅผ ๋๋ ค ๊ฐ ์ปจ์๋จธ๊ฐ ๋ ์์ ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๊ฒ ๋ง๋ค์ด ๋์ ์ค์ผ ์ ์์ต๋๋ค.
3. ์ปจ์๋จธ ์ฒ๋ฆฌ ์ฑ๋ฅ ๊ฐ์ : ์ปจ์๋จธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์์ง ์ฒ๋ฆฌ ์ฑ๋ฅ์ ์ต์ ํํด์ผ ํฉ๋๋ค. ๋ถํ์ํ ์ฐ์ฐ์ ์ ๊ฑฐํ๊ณ , ๋ฉ์์ง ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ด๊ธฐ ์ํ ๋น๋๊ธฐ ์ฒ๋ฆฌ, ๋ฉํฐ์ค๋ ๋ฉ, ์บ์ฑ ๊ธฐ๋ฒ ๋ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
4. ์คํ์
์ปค๋ฐ ์ต์ ํ : ์คํ์
์ปค๋ฐ ๋น๋๋ฅผ ์กฐ์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ ์์ฃผ ์ปค๋ฐํ ์ ์๋๋ก ์ค์ ํฉ๋๋ค. auto.commit.interval.ms
์ ๊ฐ์ ์ค์ ์ ์ ์ ํ ์กฐ์ ํด, ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋์๋ง์ ์ปค๋ฐํ์ฌ ๋ฉ์์ง ์ฌ์ฒ๋ฆฌ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
5. ๋ฐฐ์น ํฌ๊ธฐ ๋ฐ poll ์ฃผ๊ธฐ ์กฐ์ : ๋ฐฐ์น ํฌ๊ธฐ(batch.size)์ poll ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ํด, ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๊ฐ์ ธ์ค๊ณ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ต์ ํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋คํธ์ํฌ ๋น์ฉ์ ์ค์ด๊ณ , ๋ฉ์์ง ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
Last updated