Multi Thread Consumer
Kafka์์ ๋ฉํฐ ์ค๋ ๋ ์ปจ์๋จธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค. Kafka๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ์ปจ์๋จธ๊ฐ ํ๋์ ์ค๋ ๋์์ ์คํ๋๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ๊ฐ์ ํํฐ์ ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ฉํฐ ์ค๋ ๋ ๋ฐฉ์์ ์ ์ฉํด์ผ ํฉ๋๋ค.
ํ์ง๋ง Kafka๋ ์ค๋ ๋ ์์ ์ฑ์ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์, ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ ์ฉํ ๋ ์ฃผ์ํ ์ฌํญ๊ณผ ํน์ ํจํด์ด ํ์ํฉ๋๋ค.
๋ฉํฐ ์ค๋ ๋ ์ปจ์๋จธ์์ ๊ณ ๋ คํด์ผ ํ ์ฌํญ
Kafka์์ ์ปจ์๋จธ๋ ์ค๋ ๋ ์์ ํ์ง ์์ผ๋ฏ๋ก, ๊ฐ ์ค๋ ๋์์ ๋ ๋ฆฝ๋ KafkaConsumer ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์, ๋ฉํฐ ์ค๋ ๋๋ฅผ ๊ตฌํํ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ด ์ฌ์ฉ๋ฉ๋๋ค:
์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑํ์ฌ ๊ฐ ์ค๋ ๋์์ ๋ ๋ฆฝ์ ์ผ๋ก KafkaConsumer๋ฅผ ์คํ.
ํ๋์ ์ปจ์๋จธ ์ค๋ ๋์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ฌ๋ฌ ๊ฐ์ ์์ปค ์ค๋ ๋๊ฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์.
๋ค์ค ์ปจ์๋จธ ์ค๋ ๋ (Multiple Consumer Threads)
์ด ๋ฐฉ์์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋์์ ๋ ๋ฆฝ์ ์ธ Kafka ์ปจ์๋จธ๋ฅผ ๊ฐ๊ฐ ์คํํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ ์ปจ์๋จธ๋ ์์ ์๊ฒ ํ ๋น๋ ํํฐ์ ์์ ๋ฉ์์ง๋ฅผ ์ฝ์ด์ต๋๋ค. Kafka๋ ํํฐ์ ๋น ํ๋์ ์ปจ์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ์๋นํ๋๋ก ์ค๊ณ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ๊ฐ ํํฐ์ ์ด ๋ค๋ฅธ ์ค๋ ๋์ ํ ๋น๋ฉ๋๋ค.
์ฅ์
๋ ๋ฆฝ์ ์ธ ์ปจ์๋จธ: ๊ฐ ์ค๋ ๋๊ฐ ์์ฒด KafkaConsumer๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ์ค๋ ๋ ๊ฐ ์ถฉ๋์ด ๋ฐ์ํ์ง ์์.
๋ณ๋ ฌ ์ฒ๋ฆฌ: ๊ฐ ์ปจ์๋จธ๊ฐ ํ ๋น๋ ํํฐ์ ์์ ๋ณ๋ ฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์.
๋จ์
์ค๋ ๋ ์๊ฐ ๋ง์์ง ๊ฒฝ์ฐ: ์ปจ์๋จธ ์์ ํํฐ์ ์๊ฐ ๋ง์ง ์์ผ๋ฉด ๋นํจ์จ์ ์ธ ๋ฆฌ์์ค ์ฌ์ฉ์ด ๋ฐ์ํ ์ ์์. ๊ฐ ํํฐ์ ์ ํ๋์ ์ปจ์๋จธ๋ง ํ ๋น๋๋ฏ๋ก, ํํฐ์ ์๋ณด๋ค ๋ง์ ์ปจ์๋จธ๊ฐ ์์ ๋๋ ์ปจ์๋จธ๊ฐ ๋๊ฒ ๋จ.
ํ๋์ ์ปจ์๋จธ + ์์ปค ์ค๋ ๋ (Single Consumer with Worker Threads)
์ด ๋ฐฉ์์์๋ ํ๋์ ์ปจ์๋จธ ์ค๋ ๋๊ฐ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๊ฐ์ ธ์จ ๋ฉ์์ง๋ฅผ ์ฌ๋ฌ ์์ปค ์ค๋ ๋๊ฐ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ์ ๋๋ค.
KafkaConsumer๋ ์ค๋ ๋ ์์ ํ์ง ์์ผ๋ฏ๋ก, KafkaConsumer๋ ๋จ์ผ ์ค๋ ๋์์ ์คํ๋๊ณ , ์์ปค ์ค๋ ๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๋ฉํฐ ์ค๋ ๋๋ฅผ ๊ตฌํํฉ๋๋ค
์ฅ์ :
์์ ํ ๋ฉ์์ง ์ฒ๋ฆฌ: KafkaConsumer๋ ๋จ์ผ ์ค๋ ๋์์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์ค์ ๋ฉ์์ง ์ฒ๋ฆฌ๋ ์ฌ๋ฌ ์์ปค ์ค๋ ๋์์ ์งํ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ ํ ์ค๋ ๋ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ฉ์์ง ์ฒ๋ฆฌ ๋ณ๋ ฌํ: ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ์์ ๊ณผ ๋ฉ์์ง ์ฒ๋ฆฌ ์์ ์ ๋ถ๋ฆฌํ์ฌ, ์ฒ๋ฆฌ ์์ ์ ๋ณ๋ ฌํํ ์ ์์ต๋๋ค.
๋จ์ :
๋จ์ผ ์ปจ์๋จธ ๋ณ๋ชฉ: ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ์์ ์ด ๋จ์ผ ์ปจ์๋จธ์ ์์กดํ๋ฏ๋ก, Kafka ํํฐ์ ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ฒ๋ฆฌ ์๋๊ฐ ํ์ ๋ ์ ์์ต๋๋ค.
๋ฉํฐ ์ค๋ ๋ ์ปจ์๋จธ ์ค๊ณ ์ ๊ณ ๋ ค ์ฌํญ
์ค๋ ๋ ์์ ์ฑ: KafkaConsumer๋ ์ค๋ ๋ ์์ ํ์ง ์๊ธฐ ๋๋ฌธ์, ๊ฐ ์ค๋ ๋๋ ๋ ๋ฆฝ๋ KafkaConsumer ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
assign()
์ด๋subscribe()
๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ์ ์ ์ปจ์๋จธ ๊ทธ๋ฃน์ ํ ๋นํ ์ ์์ต๋๋ค.์คํ์ ์ปค๋ฐ ๊ด๋ฆฌ: ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์๋ ์คํ์ ์ปค๋ฐ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. ๋ง์ฝ ์ฌ๋ฌ ์ค๋ ๋์์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๊ณ ์๋ค๋ฉด, ์คํ์ ์ ์ธ์ ์ปค๋ฐํ ์ง์ ๋ํ ๋ช ํํ ์ ๋ต์ด ํ์ํฉ๋๋ค. ํนํ ๋ฉ์์ง๊ฐ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋ ํ์๋ง ์ปค๋ฐํ๋๋ก ํด์ผ ๋ฐ์ดํฐ ์ ์ค์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋ฆฌ๋ฐธ๋ฐ์ฑ: ์ปจ์๋จธ ๊ทธ๋ฃน์์ ์ปจ์๋จธ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ ๊ฐ ์ปจ์๋จธ์ ํ ๋น๋ ํํฐ์ ์ด ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก, ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ์ผ์ด๋ ๋ ๊ฐ ์ค๋ ๋๊ฐ ์๋ก ํ ๋น๋ ํํฐ์ ์ ์ ์ ํ ์ฒ๋ฆฌํ๋๋ก ํด์ผ ํฉ๋๋ค.
Last updated
Was this helpful?