๋ฐ์ํ
์นดํ์นด
- ๋งํฌ๋์ธ ๋ด๋ถ ์ด์ ํด๊ฒฐํ๋ ค๊ณ ๋ง๋ค์ด์ง ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ (์ค์นผ๋ผ๋ก ๋ง๋ค์ด์ง)
- ์ด๋ฒคํธ : ํน๋ณํ ๋ฐ์ดํฐ ์ํ์ ๋ณํ๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ
- ์คํธ๋ฆฌ๋ฐ : ์ด๋ฒคํธ ๋ฐ์ดํฐ์ ์ง์์ ์ธ ํ๋ฆ
- ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ์๋ ์์๊ณผ ๋์ด ์๋ค.
- ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ : ์ง์์ ์ผ๋ก ์์ฑ๋๋ ๋ฐ์ดํฐ
- ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ : ๋ค์ํ ๋น์ฆ๋์ค ๋ก์ง์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ค์ ์ ํฉํ ์ฅ์์ ์ค์๊ฐ์ผ๋ก ์ ๋ฌํด์ค ์ ์๋ ๊ธฐ์
- ๊ณ ์ฑ๋ฅ TCP ๋คํธ์ํฌ ํ๋กํ ์ฝ๋ก ํต์ ํ๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ก ๊ตฌ์ฑ๋ ๋ถ์ฐ ์์คํ
- โ๏ธTCP ๊ด๋ จ ์ด์
- https://jinhanchoi1.medium.com/kafkaconsumer-and-tcp-connection-5a2c8b197732
- KafkaConsumer๋ ๋ด๋ถ์ ์ผ๋ก NetworkClient๋ฅผ ํตํด Request๋ฅผ ์์ฑํ์ฌ ์์ ์ ์์ฒญ์ Broker์๊ฒ ๋ณด๋ธ๋ค.
- ๋ฉํ๋ฐ์ดํฐ ์์ฒญ -> TCP Connection 1๊ฐ
- ์ฝ๋๋ค์ดํฐ ์ ๋ณด ์์ฒญ -> TCP Connection 1๊ฐ
- ์ปจ์ -> TCP Connection 1๊ฐ
- ์ด 3๊ฐ์ TCP ์ปค๋ฅ์ ์ ๋ฌผ๊ณ ์์ํ๋ค.
- ๋ง์ฝ ํด๋น ์ปจ์์ ์ํํ๋ Thread๊ฐ Partition์ ํ ๋น ๋ฐ์ง ๋ชปํด์ ์ ํด ์ํ๊ฐ ๋๋ค๋ฉด? 2๊ฐ์ Tcp Connection๋ง์ ๊ทธ๋๋ก ๋ฌผ๊ณ ์ข ๋ฃ๋์ง ์๋๋ค.(๋ค๋ฅธ ์ปจ์๋จธ๊ฐ ์ฃฝ์ผ๋ฉด ์ฌํ ๋น ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ผ๋ก ๋ณด์)
- ์ฆ, ์ปค๋ฅ์ ๊ฐฏ์์ ํ์ฌ Thread * 3 ์ ์ซ์์ ๋ง์ง ์๋๋ค๋ฉด, ๋๊ณ ์๋ Thread๊ฐ ์กด์ฌํ๊ณ ์ปค๋ฅ์ ์ด 2๊ฐ์ฉ ๋๊ณ ์๋ค๋ ์ฌ์ค์ ์ ์์์ผ ํ๋ค.
- โ๏ธTCP ๊ด๋ จ ์ด์
์นดํ์นด๊ฐ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ผ๋ก ์ ํฉํ ์ด์
- ๋์ ์ฒ๋ฆฌ๋
- Sequential Access I/O
- ๊ทธ๋ฅ ํ์ผ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๋จ์ํ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ
- Zero Copy : ๋์คํฌ ๋ฒํผ์์ ๋คํธ์ํฌ ๋ฒํผ๋ก ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๋ค. (sendfile() ์์คํ ์ฝ)
- ๋ฐฐ์น ์ต์ : ๋คํธ์ํฌ ๋น์ฉ ์ค์ผ ์ ์์.
- ์ค์ผ์ผ์์ ๊ฐ๋ฅ : ํํฐ์ ๊ฐ์๋งํผ ์ปจ์๋จธ ๊ฐ์๋ฅผ ๋๋ ค์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋์ ๋๋ฆด ์ ์๋ค.
- Sequential Access I/O
- ํ์ฅ์ฑ : ๋ฌด์ค๋จ ์ค์ผ์ผ ์ธ/์์ ๊ฐ๋ฅ
- ์์์ฑ : ์นดํ์นด๋ ํ์ผ ์์คํ
์ ์ ์ฅ์ ํ๋ค. ํ์ด์ง ์บ์ ์์ญ์ ์ฌ์ฉํด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด ์๋ ๋ณด์ฅ
- ํ์ด์ง ์บ์ : ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM)์ ์ ์ฅํด์ ๊ฐ์ง๊ณ ์๋ค๊ฐ, ๋ค์ ์ด ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ์ด ๋ฐ์ํ๋ฉด disk์์ IO ์ฒ๋ฆฌ๋ฅผ ํ์ง ์๊ณ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ์ฌ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ์ปดํฌ๋ํธ
- producer๊ฐ ์๋ฒ์ธ broker์๊ฒ ๋ฃ๋ ๋ฐ์ดํฐ๋ consumer๊ฐ ์ฌ์ฉํ๊ธฐ ์ ์ผ์ ์๊ฐ๋์ page cache ์ฌ๋ ค๋์ด, consumer๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ๊ฐ ๋ ๊ทธ ์ฝ์ด๊ฐ๋ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ค๋ ๊ฒ์ผ๋ก ์ดํดํ๋ฉด ๋๊ฒ ๋ค.
- ํ์ด์ง ์บ์ : ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM)์ ์ ์ฅํด์ ๊ฐ์ง๊ณ ์๋ค๊ฐ, ๋ค์ ์ด ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ์ด ๋ฐ์ํ๋ฉด disk์์ IO ์ฒ๋ฆฌ๋ฅผ ํ์ง ์๊ณ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ์ฌ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ์ปดํฌ๋ํธ
- ๊ณ ๊ฐ์ฉ์ฑ : ํ๋ก๋์์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด ๋ชจ๋ ๋ธ๋ก์ปค์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์ฅ์ ๋์ ๊ฐ๋ฅ
๐ Reference
๋๋ณด๊ธฐ
๋ฐ์ํ