๐ก ์ด๋ฒ ํฌ์คํ ์์๋ Consumer -1์ ์ด์ด์ Consumer์ ๋ํด ์ ๋ฆฌํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.

์ปจ์๋จธ๋ ์์ ๊ฐ์ด ConsumerCoordinator, ConsumerNetworkClient, Fetcher, SubscriptionState ๋ฑ์ ์ฃผ์ ๋ด๋ถ ๊ฐ์ฒด์ ๋ณ๋์ HeartBeat Thread๋ฅผ ์์ฑํฉ๋๋ค.
์ด์ ํฌ์คํ ์์ ์ ๋ฆฌํ์ง ์์ Fetcher, ConsumerNetworkClient, SubscriptionState์ ๋ํด์ ์ ๋ฆฌํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Fetcher, ConsumerClientNetwork
Fetcher, ConsumerClientNetwork ๊ฐ์ฒด๋ ๋ธ๋ก์ปค์ ํ ํฝ ํํฐ์ ์์ ๋ฉ์์ง๋ฅผ Fetch ๋ฐ Poll์ ์ํํ๋ ๊ฐ์ฒด์ ๋๋ค.


์ ๊ทธ๋ฆผ๋ค๊ณผ ๊ฐ์ด ์ปจ์๋จธ๋ poll() ์ ํตํด ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ์ด๋ ๋ฉ์์ง๋ฅผ Fetcher ๊ฐ์ฒด์์ ๊ฐ์ ธ์ต๋๋ค.
Fetcher ๊ฐ์ฒด์์ ๋ฉ์์ง๋ฅผ Linked Queue ํํ๋ก ์ ์ฅํ๊ณ ์์ผ๋ฉฐ ๋ฉ์์ง๊ฐ ์์ ๊ฒฝ์ฐ ๊ทธ๋๋ก ๋ฐํํ์ง๋ง, ๋ง์ฝ Fetcher ๊ฐ์ฒด์ ๋ฉ์์ง๊ฐ ์๋ค๋ฉด ConsumerNetworkClient ๊ฐ์ฒด๋ฅผ ํตํด ๋ธ๋ก์ปค๋ก๋ถํฐ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ก(fetch) ์์ฒญํฉ๋๋ค.
๋ธ๋ก์ปค๊ฐ ConsumerNetworkClient ๊ฐ์ฒด์ fetch ์์ฒญ์ ์ํด ๋ฉ์์ง๋ฅผ ์ ์กํ๊ฒ ๋๋ฉด ConsumerNetworkClient๋ ์ด ๋ฉ์์ง๋ฅผ Fetcher ๊ฐ์ฒด์ ์ ์ฅํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ Fetcher ๊ฐ์ฒด๋ ์ด์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์ปจ์๋จธ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
Fetcher, ConsumerNetworkClient์ ๊ด๋ จ๋ ์ค์ ์ ์๋์ ๊ฐ์ต๋๋ค.
ํ๋ผ๋ฏธํฐ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
fetch.min.bytes | 1 | ๋ธ๋ก์ปค๋ก๋ถํฐ ํ๋ฒ์ ๊ฐ์ ธ์ฌ ์ ์๋ ์ต์ ๋ฐ์ดํฐ ์ฌ์ด์ฆ์ ๋๋ค. ๋ง์ฝ ์ต์ ์์ ์ง์ ํ ์ฌ์ด์ฆ๋ณด๋ค ๋ชจ์ธ ๋ฐ์ดํฐ๊ฐ ์ ์ ์์๋ ๋ฐ๋ก ์์ฒญ์ ๋ํด ์๋ตํ์ง ์๊ณ ๋ฐ์ดํฐ๊ฐ ๋์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ์ต๋ ์๊ฐ๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์๋ตํ๊ฒ ๋ฉ๋๋ค. |
fetch.max.bytes | 50MB | ๋ธ๋ก์ปค๋ก๋ถํฐ ํ๋ฒ์ ๊ฐ์ ธ์ฌ ์ ์๋ ์ต๋ ๋ฐ์ดํฐ ์ฌ์ด์ฆ์ ๋๋ค. (ํํฐ์ ์ดํฉ) |
fetch.max.wait.ms | 500ms | fetch.min.bytes ์ด์์ ๋ฉ์์ง๊ฐ ์์ผ๋๊น์ง ์ต๋ ๋๊ธฐ ์๊ฐ์ ๋๋ค. fetch.min.bytes ์ด์์ ๋ฉ์์ง๊ฐ ์์ด์ง ์์๋ fetch.max.wait.ms๊ฐ ์ง๋๋ฉด ๋ฉ์์ง๋ฅผ ์ ์กํฉ๋๋ค. |
max.partition.fetch.bytes | 1MB | Fetcher๊ฐ ํํฐ์ ๋ณ๋ก ํ๋ฒ์ ์ต๋๋ก ๊ฐ์ ธ์ฌ ์ ์๋ bytes ์ ๋๋ค. |
max.poll.records | 500 | Fetcher๊ฐ ํ๋ฒ์ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ ์ฝ๋ ์ ์ ๋๋ค. |
SubscriptionState
์ปจ์๋จธ๋ ์์ ์ด consume ํ๋ ํ ํฝ, ํํฐ์ , ์คํ์ ์ ๋ณด๋ฅผ ์ถ์ ๋ฐ ๊ด๋ฆฌํ๋๋ฐ ์ด ๋ถ๋ถ์ SubscriptionState ๊ฐ์ฒด๊ฐ ๋ด๋นํฉ๋๋ค.

์ฌ์ฉ์๊ฐ ๊ตฌ๋ ์ ์์ฒญํ ํ ํฝ ์ ๋ณด๋ SubscriptionState์ subscription์ ์ ์ฅ๋ฉ๋๋ค.
์ฐธ๊ณ ์๋ฃ
'Kafka' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
KafkaConsumer (0) | 2023.04.17 |
---|---|
Consumer - 3 (0) | 2023.04.17 |
Consumer - 1 (0) | 2023.04.16 |
Producer - 2 (0) | 2023.04.09 |
Partitioner & Partition (0) | 2023.04.08 |
๋๊ธ