Consumer
Last updated
Last updated
Kafka ์ปจ์๋จธ๋ Kafka ํด๋ฌ์คํฐ์์ ํ ํฝ์ ๋ฉ์์ง๋ฅผ ์ฝ๊ณ ์ฒ๋ฆฌํ๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์ปจ์๋จธ๋ ํ๋ก๋์๊ฐ ์ ์กํ ๋ฉ์์ง๋ฅผ ํ ํฝ์ ํํฐ์ ์์ ์ฝ์ด์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ง์ถฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
Kafka๋ ๊ณ ์ฑ๋ฅ ๋น๋๊ธฐ ์คํธ๋ฆฌ๋ฐ์ ์ง์ํ๋ฉฐ, ์ปจ์๋จธ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์๋นํ ์ ์๋ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๋๋ค.
์ปจ์๋จธ๋ Kafka์ ํ ํฝ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ฉฐ, ์ฌ๋ฌ ์ปจ์๋จธ๊ฐ ์ปจ์๋จธ ๊ทธ๋ฃน์ ํ์ฑํด ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
๊ฐ ์ปจ์๋จธ๋ ํํฐ์ ์ ํ ๋น๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉฐ, ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ๋ฐ์ดํฐ ์ค๋ณต ์์ด ๊ฐ ํํฐ์ ์ ์ ๊ทผํฉ๋๋ค. ์คํ์ ์ ๊ฐ ํํฐ์ ๋ด์์ ์ปจ์๋จธ๊ฐ ์ด๋๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์๋์ง ์ถ์ ํ๋ ์ค์ํ ๊ฐ๋ ์ ๋๋ค.
์ด๋ฅผ ํตํด ์ค๋จ๋๊ฑฐ๋ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ด์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ปจ์๋จธ๊ฐ Kafka ํด๋ฌ์คํฐ์์ ๋ฐ์ดํฐ๋ฅผ ์๋นํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ปจ์๋จธ๋ ํ ํฝ์ ๊ตฌ๋ ํ์ฌ ํด๋น ํ ํฝ์ ๋ฉ์์ง๋ฅผ ์ฝ์ต๋๋ค.
Kafka๋ ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ํํฐ์ ์ ํ ๋นํ๋ฉฐ, ๊ฐ ์ปจ์๋จธ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ํํฐ์ ์ ์ฒ๋ฆฌํ๋๋ก ํฉ๋๋ค.
์ปจ์๋จธ๊ฐ ํํฐ์ ์์ ๋ฉ์์ง๋ฅผ ์ฝ์ ๋, Kafka๋ ๊ทธ ์์น๋ฅผ ์คํ์ ์ผ๋ก ์ถ์ ํฉ๋๋ค.
๋ฉ์์ง๊ฐ ์ฒ๋ฆฌ๋๋ฉด ์ปจ์๋จธ๋ Kafka์ ์คํ์ ์ ์ปค๋ฐํ์ฌ ์ด๋๊น์ง ์ฝ์๋์ง๋ฅผ ๊ธฐ๋กํ๊ณ , ๋ค์ ๋ฉ์์ง๋ถํฐ ์ด์ด์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Kafka ์ปจ์๋จธ๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํด ๊ทธ๋ฃน ๋ด์ ์ปจ์๋จธ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ๋ ์๋์ผ๋ก ํํฐ์ ์ ์ฌ๋ถ๋ฐฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ปจ์๋จธ๊ฐ ๋์ ์ผ๋ก ํด๋ฌ์คํฐ์ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋์ด๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ํฅ์ด ์๊ฒ ๋ฉ๋๋ค.
์ปจ์๋จธ๋ ์คํ์ ์๋ ์ปค๋ฐ๊ณผ ์๋ ์ปค๋ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ, ๋ฉ์์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์๋์ง ํ์คํ ํ ํ์ ์คํ์ ์ ์ปค๋ฐํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
Kafka ์ปจ์๋จธ๋ ๋ค์ํ ์ค์ ์ต์ ์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
enable.auto.commit: ์๋ ์ปค๋ฐ ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ true
๋ก, ์ผ์ ๊ฐ๊ฒฉ๋ง๋ค Kafka๊ฐ ์คํ์
์ ์๋์ผ๋ก ์ปค๋ฐํฉ๋๋ค.
auto.offset.reset: ์ปจ์๋จธ๊ฐ ์ฝ๊ธฐ ์์ํ ์คํ์ ์ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ ํฝ์ ์ฒ์ ์ฐ๊ฒฐ๋ ๋ ๋๋ ๋ง์ง๋ง ์ปค๋ฐ๋ ์คํ์ ์ด ์์ ๋, earliest๋ฅผ ์ค์ ํ๋ฉด ๊ฐ์ฅ ์ค๋๋ ๋ฉ์์ง๋ถํฐ ์ฝ๊ณ , latest๋ฅผ ์ค์ ํ๋ฉด ์ต์ ๋ฉ์์ง๋ถํฐ ์ฝ์ต๋๋ค.
max.poll.records: ํ ๋ฒ์ ์์ฒญ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ ์ต๋ ๋ ์ฝ๋ ์๋ฅผ ์ ์ํฉ๋๋ค. ์ด ๊ฐ์ ์กฐ์ ํ๋ฉด ์ฒ๋ฆฌ ์๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต์ ํํ ์ ์์ต๋๋ค.
session.timeout.ms: ์ปจ์๋จธ๊ฐ ์ ์์ ์ผ๋ก ์๋ ์ค์ธ์ง Kafka์ ์ ํธ๋ฅผ ๋ณด๋ด๋ ์๊ฐ ๊ฐ๊ฒฉ์ ๋๋ค. ์ง์ ๋ ์๊ฐ ๋์ ์ปจ์๋จธ๊ฐ ์๋ตํ์ง ์์ผ๋ฉด Kafka๋ ํด๋น ์ปจ์๋จธ๊ฐ ์ฅ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ณ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ ์์ํฉ๋๋ค.
Kafka ์ปจ์๋จธ๋ ํํฐ์ ํ ๋น์ ํตํด ๋ฉ์์ง๋ฅผ ์๋นํฉ๋๋ค. Kafka๋ ์ปจ์๋จธ๊ฐ ์ด๋ค ํํฐ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค
subscribe()
: Kafka๊ฐ ์๋์ผ๋ก ํํฐ์
์ ํ ๋นํ๋ ๋ฐฉ์์
๋๋ค. ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ํํฐ์
์ด ์๋์ผ๋ก ๋ถ๋ฐฐ๋๋ฉฐ, Kafka๊ฐ ์ด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
assign()
: ์ฌ์ฉ์๊ฐ ์ง์ ํน์ ํํฐ์
์ ์ปจ์๋จธ์ ํ ๋นํ๋ ๋ฐฉ์์
๋๋ค. ์ด๋ฅผ ํตํด ๋ ์ธ๋ฐํ๊ฒ ํํฐ์
์ ์ ์ดํ ์ ์์ต๋๋ค.
subscribe()
๋?subscribe()
๋ Kafka ์ปจ์๋จธ๊ฐ ํ๋ ์ด์์ ํ ํฝ์ ๊ตฌ๋
ํ๊ณ , Kafka ํด๋ฌ์คํฐ ๋ด์์ ์๋์ผ๋ก ํํฐ์
์ ํ ๋น๋ฐ์ ๋ฉ์์ง๋ฅผ ์๋นํ๋ ๋ฉ์๋์
๋๋ค. subscribe()
๋ฅผ ์ฌ์ฉํ๋ฉด Kafka๊ฐ ์ปจ์๋จธ ๊ทธ๋ฃน์ ํตํด ์๋์ผ๋ก ํํฐ์
์ ๋ถ๋ฐฐํ๊ณ , ํํฐ์
์ ๋ฆฌ๋ฐธ๋ฐ์ฑ(์ฌํ ๋น)๋ ์๋์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
subscribe()
๋ ์ผ๋ฐ์ ์ผ๋ก ๋๊ท๋ชจ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์์ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
ํนํ ์ฌ๋ฌ ์ปจ์๋จธ๊ฐ ์ปจ์๋จธ ๊ทธ๋ฃน์ ํ์ฑํ์ฌ ๋ณ๋ ฌ๋ก ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ์ ์ฉํฉ๋๋ค.
๋ค์์ ์ปจ์๋จธ๊ฐ ํ๋์ ํ ํฝ์ ๋์์ ์ฒ๋ฆฌํ ๋, Kafka๊ฐ ํํฐ์ ์ ์๋์ผ๋ก ๋ถ๋ฐฐํ๋๋ก ํ๊ณ ์ถ์ ๋
์๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ ํตํด ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ์ปจ์๋จธ ์ถ๊ฐ/์ ๊ฑฐ ์ ํํฐ์ ์ ์๋์ผ๋ก ์กฐ์ ํ๊ณ ์ถ์ ๋
๋์ ์ผ๋ก ํ ํฝ์ ๊ด๋ฆฌํ๊ณ , ํน์ ์ปจ์๋จธ๊ฐ ์ฌ๋ฌ ํ ํฝ์ ๊ตฌ๋ ํ๊ฒ ํ๊ณ ์ถ์ ๋
assign()
๋?assign()
๋ฉ์๋๋ Kafka ์ปจ์๋จธ๊ฐ ํน์ ํํฐ์
์ ์ง์ ํ ๋น๋ฐ์ ๋ฉ์์ง๋ฅผ ์ฝ์ ์ ์๋๋ก ํฉ๋๋ค.
์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจ์๋จธ ๊ทธ๋ฃน์ ์๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ ํผํ๊ณ , ํน์ ํํฐ์
์์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
assign()
์ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ์ ์ฉํฉ๋๋ค
ํน์ ํํฐ์ ๋ง ์๋นํ๊ณ ์ถ์ ๋: ํน์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ ํน์ ์ง์ญ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋, ์ง์ ํํฐ์ ์ ํ ๋นํ ์ ์์ต๋๋ค.
๋ฆฌ๋ฐธ๋ฐ์ฑ์ ํผํ๊ณ ์ถ์ ๋: ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ์์ฃผ ๋ฐ์ํ๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ์์ ์ ์์ต๋๋ค. assign()
์ ์ฌ์ฉํ๋ฉด Kafka์ ์๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ ์์ด ํํฐ์
์ ๊ณ ์ ํ ์ ์์ต๋๋ค.
์ปจ์๋จธ ๊ทธ๋ฃน ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ ๋: ์ปจ์๋จธ ๊ทธ๋ฃน ์์ด, ๋จ์ผ ์ปจ์๋จธ๊ฐ ์ฌ๋ฌ ํํฐ์
์ ์ฒ๋ฆฌํด์ผ ํ ๊ฒฝ์ฐ์๋ assign()
์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ํํฐ์
์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
assign()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ํํฐ์
์ ์ง์ ์ง์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
์ ์์์์ TopicPartition
์ ํตํด ํ ํฝ ์ด๋ฆ๊ณผ ํํฐ์
๋ฒํธ๋ฅผ ์ง์ ํ๊ณ , ๊ทธ ํํฐ์
๋ง ์๋นํ๋๋ก assign()
์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฆฌ๋ฐธ๋ฐ์ฑ ์์ด ํน์ ํํฐ์
์์ ๋ฐ์ดํฐ๋ฅผ ์๋นํ ์ ์์ต๋๋ค.
assign()
๊ณผ subscribe()
์ ์ฐจ์ด์ subscribe()
์ assign()
์ ๊ฐ๊ฐ ํํฐ์
ํ ๋น์ ์๋ํ์ ์๋ํ๋ฅผ ๋ด๋นํฉ๋๋ค.
๋ค์์ ๋ ๋ฐฉ์์ ์ฃผ์ ์ฐจ์ด์ ์
๋๋ค
subscribe()
: ์ปจ์๋จธ๋ Kafka ํด๋ฌ์คํฐ ๋ด์์ ์ปจ์๋จธ ๊ทธ๋ฃน์ ์ผ๋ถ๋ก์ ๋์ํ๋ฉฐ, Kafka๋ ์๋์ผ๋ก ํํฐ์
์ ํ ๋นํฉ๋๋ค. ์ด ๋ฐฉ์์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ์ปจ์๋จธ๊ฐ ๋์์ ํ๋์ ํ ํฝ์ ์๋นํ ์ ์์ต๋๋ค.
์ฅ์ : ์ฌ๋ฌ ์ปจ์๋จธ๊ฐ ํํฐ์ ์ ๋๋์ด ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, Kafka๊ฐ ํํฐ์ ์ ์๋์ผ๋ก ๋ถ๋ฐฐํ๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ๊ฐ ์ฝ์ต๋๋ค.
๋จ์ : ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ์์ ์ ์์ต๋๋ค.
assign()
: ์ปจ์๋จธ๊ฐ ํน์ ํํฐ์
์ ์ง์ ์ง์ ํ์ฌ ์๋นํฉ๋๋ค. ์ปจ์๋จธ ๊ทธ๋ฃน ์์ด๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
์ฅ์ : ํํฐ์ ์ ์ง์ ์ ์ดํ ์ ์๊ณ , ์๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ ์์ด ํน์ ํํฐ์ ์ ์๋นํ ์ ์์ต๋๋ค.
๋จ์ : ์ฌ๋ฌ ์ปจ์๋จธ๊ฐ ์์ ๋ ํํฐ์ ์ ์ง์ ๋๋์ด ํ ๋นํด์ผ ํ๋ฏ๋ก ๊ด๋ฆฌ๊ฐ ๋ณต์กํ ์ ์์ต๋๋ค.
assign()
๋ฉ์๋์ ์ฅ์ ๋ฆฌ๋ฐธ๋ฐ์ฑ ์์ด ์์ ์ ์ธ ๋ฐ์ดํฐ ์๋น: assign()
์ ์ฌ์ฉํ๋ฉด ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ปจ์๋จธ๊ฐ ํ ๋น๋ ํํฐ์
์์ ์์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์๋นํ ์ ์์ต๋๋ค. ์ด๋ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ํผํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
ํน์ ํํฐ์
์ ๋ํ ์ ์ด: ํน์ ํํฐ์
์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ผ ํ๋ ๊ฒฝ์ฐ, assign()
์ ์ฌ์ฉํ์ฌ ์ธ๋ฐํ ํํฐ์
์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ง ์ฒ๋ฆฌํด์ผ ํ๊ฑฐ๋, ํน์ ์ด๋ฒคํธ ์ ํ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์๋นํ ๋ ์ ์ฉํฉ๋๋ค.
๋จ์ผ ์ปจ์๋จธ์์ ์ฌ๋ฌ ํํฐ์
๊ด๋ฆฌ: ์ปจ์๋จธ ๊ทธ๋ฃน์ ์ฌ์ฉํ์ง ์๊ฑฐ๋, ์ฌ๋ฌ ํํฐ์
์ ๋จ์ผ ์ปจ์๋จธ์์ ์ฒ๋ฆฌํ ๋ assign()
์ ํตํด ์ด๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ํํฐ์
์ ๋ํด ๊ฐ๋ณ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์๋นํ ์ ์๊ธฐ ๋๋ฌธ์, ์ปจ์๋จธ ๊ทธ๋ฃน์ ์๋ ๋ถ๋ฐฐ ์์ด๋ ํํฐ์
๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
assign()
๊ด๋ จ ์ค์ ์ต์
assign()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์ค์ํ ๋ช ๊ฐ์ง ์ค์ ์ต์
์ด ์์ต๋๋ค.
auto.offset.reset: ์ปจ์๋จธ๊ฐ ์ฒ์ ์์๋๊ฑฐ๋ ์คํ์
์ด ์กด์ฌํ์ง ์์ ๋, ์ด๋์๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์์ง ๊ฒฐ์ ํ๋ ์ค์ ์
๋๋ค. assign()
์ ์ฌ์ฉํ ๋๋ ์ด ์ค์ ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
earliest
: ๊ฐ์ฅ ์ค๋๋ ๋ฉ์์ง๋ถํฐ ์ฝ์ต๋๋ค.
latest
: ๊ฐ์ฅ ์ต๊ทผ์ ๋ฉ์์ง๋ถํฐ ์ฝ์ต๋๋ค.
enable.auto.commit: ์๋์ผ๋ก ์คํ์ ์ ์ปค๋ฐํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์๋์ผ๋ก ํํฐ์ ์ ํ ๋นํ๋ ๊ฒฝ์ฐ, ์๋ ์ปค๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๋ฅผ ํตํด ์ปจ์๋จธ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์ฒ๋ฆฌํ ํ์๋ง ์คํ์ ์ ์ปค๋ฐํ ์ ์์ต๋๋ค.
wakeup()
๋?wakeup()
๋ฉ์๋๋ Kafka ์ปจ์๋จธ์ ์์ ํ ์ค๋จ์ ์ํ ๋ฉ์๋์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Kafka ์ปจ์๋จธ๋ poll()
๋ฉ์๋๋ฅผ ํตํด ๋ธ๋กํน ์ํ๋ก ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ์ด๋ ์ธ๋ถ์์ ์ปจ์๋จธ๋ฅผ ์ค๋จํด์ผ ํ ์ํฉ์ด ๋ฐ์ํ๋ฉด, ๋ฐ๋ก ์ข
๋ฃํ ์ ์๊ณ ํ์ฌ ์งํ ์ค์ธ poll()
์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๋ wakeup()
๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด, ํ์ฌ ์งํ ์ค์ธ poll()
์ ์ฆ์ ์ค๋จ์ํค๊ณ WakeupException
์ ๋ฐ์์ํต๋๋ค. ์ด ์์ธ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ปจ์๋จธ๋ฅผ ์์ ํ๊ฒ ์ข
๋ฃํ ์ ์์ต๋๋ค.
wakeup()
๋ฉ์๋๋ ์ธ๋ถ ์ ํธ(์: ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ ์๊ทธ๋)๋ฅผ ๋ฐ๊ฑฐ๋ ์ปจ์๋จธ๋ฅผ ์ข
๋ฃํด์ผ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ค๋ ๋๊ฐ Kafka ์ปจ์๋จธ๋ฅผ ์คํ ์ค์ผ ๋, ๋ณ๋์ ์ค๋ ๋์์ wakeup()
์ ํธ์ถํ์ฌ ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์ค๋จ์ํฌ ์ ์์ต๋๋ค.
์๋๋ wakeup()
์ ์ฌ์ฉํ์ฌ Kafka ์ปจ์๋จธ๋ฅผ ์์ ํ๊ฒ ์ข
๋ฃํ๋ ์์์
๋๋ค:
Kafka ์ปจ์๋จธ๋ ๋ณ๋์ ์ค๋ ๋์์ ์คํ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ์๋นํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ด ์ข
๋ฃ๋๋ฉด wakeup()
๋ฉ์๋๊ฐ ํธ์ถ๋์ด ์ปจ์๋จธ์ poll()
์ ์ค๋จํ๊ณ , WakeupException
์ ๋ฐ์์ํต๋๋ค.
finally
๋ธ๋ก์์ consumer.close()
๋ฅผ ํธ์ถํ์ฌ ๋ฆฌ์์ค๋ฅผ ์์ ํ๊ฒ ํด์ ํฉ๋๋ค.
wakeup()
์ ์ฃผ์ ์ญํ ๋ธ๋ก๋ poll()
์ค๋จ: Kafka ์ปจ์๋จธ๊ฐ poll()
๋ฉ์๋๋ฅผ ํธ์ถํด ๋ธ๋กํน ์ํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์, wakeup()
์ ํธ์ถํ๋ฉด poll()
์ด ์ฆ์ ์ค๋จ๋๊ณ WakeupException
์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ปจ์๋จธ๋ ์ฆ์ ์ข
๋ฃ๋ ์ ์์ต๋๋ค.
์ค๋ ๋ ์์ ์ฑ: wakeup()
์ ์ค๋ ๋ ์์ ํฉ๋๋ค. ์ฆ, ๋ค๋ฅธ ์ค๋ ๋์์ ํธ์ถํด๋ ์์ ํ๊ฒ ์คํ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฉ์ธ ์ค๋ ๋์์ ์คํ ์ค์ธ ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์์ ํ๊ฒ ์ค๋จํ ์ ์์ต๋๋ค.
์ปจ์๋จธ์ ์์ ํ ์ข
๋ฃ: Kafka ์ปจ์๋จธ๋ ๋ณดํต ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ์๋นํ๊ธฐ ๋๋ฌธ์, ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ ์ ์์ ํ๊ฒ ์ข
๋ฃํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. wakeup()
์ poll()
์ค๋จ ๋ฐ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํตํด ์ปจ์๋จธ ๋ฆฌ์์ค๋ฅผ ์์ ํ๊ฒ ์ ๋ฆฌํ ์ ์๋๋ก ๋์ต๋๋ค.
wakeup()
๊ณผ close()
์ ์ฐจ์ด์ wakeup()
: ์ฆ์ poll()
์ ์ค๋จํ๊ณ WakeupException
์ ๋ฐ์์ํต๋๋ค. ์ด๋ฅผ ํตํด ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์์ ํ๊ฒ ์ค๋จํ ์ ์์ต๋๋ค.
close()
: ์ปจ์๋จธ๋ฅผ ์์ ํ ์ข
๋ฃํ๊ณ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํด์ ํฉ๋๋ค. wakeup()
์ผ๋ก poll()
์ ์ค๋จํ ํ, ์ปจ์๋จธ๋ฅผ ์์ ํ ์ข
๋ฃํ๋ ค๋ฉด ๋ฐ๋์ close()
๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ wakeup()
์ ํ์ฌ ์งํ ์ค์ธ ์์
์ ์ค๋จํ๋ ์ญํ ์ ํ๊ณ , ๊ทธ ํ์ close()
๋ฅผ ํธ์ถํ์ฌ ์ปจ์๋จธ ๋ฆฌ์์ค๋ฅผ ํด์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ํจํด์
๋๋ค.
Fetcher๋ Kafka ์ปจ์๋จธ ๋ด๋ถ์์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ์ญํ ์ ๋ด๋นํ๋ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค.
Fetcher๋ ํํฐ์ ์ ๋ฆฌ๋ ๋ธ๋ก์ปค๋ก๋ถํฐ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ์์ ์ ์ํํ๋ฉฐ, ์ฌ๋ฌ ํํฐ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
๋ฉ์์ง ๊ฐ์ ธ์ค๊ธฐ: Fetcher๋ ์ปจ์๋จธ๊ฐ ๊ตฌ๋ ํ ํ ํฝ์ ๊ฐ ํํฐ์ ์ ๋ฆฌ๋ ๋ธ๋ก์ปค์ ์์ฒญ์ ๋ณด๋ด ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ์ด๋ ๊ฐ ๋ธ๋ก์ปค๊ฐ ๊ด๋ฆฌํ๋ ํํฐ์ ์์ ๋ฉ์์ง๋ฅผ ๋น๋๊ธฐ๋ก ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
Fetch ์์ฒญ ๊ด๋ฆฌ: Fetcher๋ ๊ฐ ํํฐ์ ์ ๋ํด fetch ์์ฒญ์ ๋ณด๋ด๊ณ , ์คํ์ ์ ๊ธฐ์ค์ผ๋ก ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ์ ธ์จ ๋ฉ์์ง๋ ์ปจ์๋จธ๊ฐ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ ๊ณต๋ฉ๋๋ค.
๋ฐ์ดํฐ ์ผ๊ด์ฑ ์ ์ง: Fetcher๋ ์คํ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ์์ง๋ฅผ ์ฝ์ด์ค๋ฉฐ, Kafka์ ์ผ๊ด์ฑ ๋ชจ๋ธ์ ๋ฐ๋ฆ ๋๋ค. ์ด๋ฅผ ํตํด, ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ฒ ์ฒ๋ฆฌ๋๊ณ , ๋ฉ์์ง์ ์์๊ฐ ์ ์ง๋ ์ ์๋๋ก ํฉ๋๋ค.
ํ์นญ ์ฑ๋ฅ ์ต์ ํ: Kafka ์ปจ์๋จธ๋ ํ ๋ฒ์ ์ฌ๋ฌ ํํฐ์ ์์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ต์ ํ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Fetcher๋ ์ด ๊ณผ์ ์์ ์ต์ ์ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด, ๋ฐฐ์น ํฌ๊ธฐ, ๋คํธ์ํฌ ์ํ ๋ฑ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
ํ ํฝ ๊ตฌ๋ ๋ฐ ํํฐ์ ํ ๋น: Kafka ์ปจ์๋จธ๋ ํ ํฝ์ ๊ตฌ๋ ํ๊ณ , ํด๋น ํ ํฝ์ ํํฐ์ ์ ํ ๋น๋ฐ์ต๋๋ค. ์ปจ์๋จธ ๊ทธ๋ฃน ๋ด์์ ํํฐ์ ์ ์๋์ผ๋ก ๋ถ๋ฐฐ๋ฉ๋๋ค.
Fetcher๋ ์ปจ์๋จธ๊ฐ ํ ๋น๋ฐ์ ํํฐ์ ์์ ์คํ์ ์ ๊ธฐ์ค์ผ๋ก ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ์ญํ ์ ์ํํฉ๋๋ค.
fetch ์์ฒญ์ด ํํฐ์ ์ ๋ฆฌ๋ ๋ธ๋ก์ปค๋ก ๋ณด๋ด์ง๋ฉฐ, Fetcher๋ ๋ธ๋ก์ปค๋ก๋ถํฐ ํด๋น ์คํ์ ์ดํ์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
Fetcher๊ฐ ๊ฐ์ ธ์จ ๋ฉ์์ง๋ฅผ ์ปจ์๋จธ๋ ์คํ์ ์ ๊ธฐ์ค์ผ๋ก ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
๋ฉ์์ง๊ฐ ์ฒ๋ฆฌ๋๋ฉด, ์ปจ์๋จธ๋ ์คํ์ ์ ์ปค๋ฐํ์ฌ ์ฒ๋ฆฌ๋ ๋ฉ์์ง์ ์์น๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
์ปจ์๋จธ ๊ทธ๋ฃน์์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ๋ฐ์ํ ๊ฒฝ์ฐ, Fetcher๋ ์๋ก์ด ํํฐ์ ์ ๋ํด fetch ์์ฒญ์ ๋ค์ ์ค์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ด์ด์ ๊ฐ์ ธ์ต๋๋ค.