์ฃผํคํผ ์นดํ์นด ํด๋ฌ์คํฐ ๊ด๋ฆฌ ์ฉ๋๋ก๋ง ๊ฐ๋ตํ ์๊ณ ๋์ด๊ฐ์ ๊ธฐ์กด์๋ ์นดํ์นด ์ฌ์ฉ ์ ์ฃผํคํผ๊ฐ ํ์์์ผ๋, ์ฃผํคํผ ์ฌ์ฉ์ ์ ์ฝ์ฌํญ์ด๋ ํ๊ณ์ฑ์ ์ํด ์ฃผํคํผ์ ์นดํ์นด์ ์ฐ๊ฒฐ๊ณ ๋ฆฌ๋ฅผ ๋๊ณ ์๋ค. Apache Kafka 2.8 ๋ฒ์ ๋ถํฐ ์ฃผํคํผ ๋์ kraft ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋, 2.8.x ๋ฒ์ ๋ถํฐ 3.2.x ๋ฒ์ ๊น์ง๋ ๊ฐ๋ฐ ๋จ๊ณ(์ผ๋ฆฌ ์ก์ธ์ค,early access) ์
๋๋ค. Kafka 3.3.1 ๋ฒ์ ์์ ๋ถํฐ Production(์ด์)์์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์ ๋ฐํํ๋ฉด์ KRaft ์ง์๊ณผ ZooKeeper ์ง์์ข
๋ฃ(์ ๊ฑฐ)์ ๋ํ ๋ฆด๋ฆฌ์ฆ ํ์๋ผ์ธ์ ๋ฐํ ํ์์ต๋๋ค. ๋ธ๋ก์ปค ์ผ๋ฐ์ ์ผ๋ก ์นดํ์นด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์์คํ
(์ดํ๋ฆฌ์ผ์ด์
)์ ๋งํ๋ค. ์ปจํธ๋กค๋ฌ ๋ค์์ ๋ธ๋ก์ปค ์ค ํ๋๊ฐ ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ๋ค ํํฐ์
ํ ๋น, ์ ์ ๋..
Study
๋ ์ฝ๋ ์นดํ์นด ๋ฐ์ดํฐ ๋จ์ ๊ตฌ์ฑ์์ ํค๋ ํ์์คํฌํ : ์๊ฐ์ ์ ์ฅํ๋ ์ฉ๋ ์คํ์
: ๋ ์ฝ๋์ ๊ณ ์ ํ ๋ฒํธ ๋ธ๋ก์ปค์ ์ ์ฌ๋ ๋ ์คํ์
์ด ์ง์ ๋๋ค. ๋ฉ์ธ์ง ํค : ํํฐ์
๋(๋ถ๋ฅ)๋ฅผ ์ํด ์ฌ์ฉํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํด์ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉํด ํํฐ์
๋ํจ ํค๊ฐ ๋์ผํ๋ฉด ํญ์ ๊ฐ์ ํํฐ์
์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์์ ๋ณด์ฅ ๊ฐ๋ฅ ๋ฉ์ธ์ง ๊ฐ : ๋ด๋ถ์ ์ผ๋ก ๋ฐ์ดํธ ํํ๋ก ์ ์ฅํด ์ง๋ ฌํ, ์ญ์ง๋ ฌํ๊ฐ ํ์ํ๋ค. ํํฐ์
ํ ๊ตฌ์กฐ๋ก ๋ ์ฝ๋(๋ฉ์์ง)๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ ์ฐธ๊ณ : ํํฐ์
์ ๊ฐ์๋ ๋์ด๋ ์๋ ์์ด๋ ์ค์ด๋ค ์ ์๋ค. ํํฐ์
๊ฐ์๋ฅผ ์ค์ด์ง ๋ชปํ๋ ์ด์ ๋ ์นดํ์นด๋ฅผ ์ด๋ฃจ๋ ์ฌ๋ฌ ์ค๊ณ ์์ธ๋ค์ด ๋ณตํฉ์ ์ผ๋ก ์ ์ฉ๋๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ์ค ํ๋๋ ๋ค์ ๋ธ๋ก์ปค์ ๋ถ๋ฐฐ๋์ด ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ค์ ์ฌ๋ฐฐ์ดํ๋ ๊ฒ์ ์๋นํ ๋ฆฌ์์ค๊ฐ ๋ค์ด๊ฐ๋ ๊ฒ์ด๋ผ๊ณ ๋ง์๋..
read() -> send() ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์ read()๋ฅผ ์์ฒญํ๋ฉด ๋์คํฌ์ ์๋ ํ์ผ์ด ์ปค๋ Read Buffer์ ๋ณต์ฌ๋๋ค. Application์ด ์ปค๋๋จ์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ Application Buffer์๋ ๋ณต์ฌ๋๋ค. send()๋ฅผ ์์ฒญํ๋ฉด ์ปค๋ Socet Buffer์ ํ์ผ์ด ๋ณต์ฌ๋๋ค. NIC ๋ฒํผ๋ก ๋ณต์ฌ๋๋ค. ์ปจํ
์คํธ ์ค์์นญ ๋ค๋ ๋ฐ์ ์ฌ์ฉ์๊ฐ transferTo() ๋ฉ์๋๋ฅผ ์ด์ฉํด ํ์ผ ์ ์ก์ ์์ฒญํ๋ค. read()์ send() ํจ์๊ฐ ํ๋๋ก ํฉ์ณ์ง ํํ์ ์์คํ
์ฝ์ด๋ค. ๋์คํฌ์ ์๋ ํ์ผ์ด ์ปค๋ Read Buffer์ ๋ณต์ฌ๋๋ค. ์ปค๋ ๋ชจ๋์์ ์ ์ ๋ชจ๋๋ก ์ปจํ
์คํธ ์ค์์นญํ์ง ์๊ณ ๋ฐ๋ก Socket buffer๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๋ค. Socket buffer์ ๋ณต์ฌ๋ ๋ฐ์ดํฐ๋ฅผ D..
์นดํ์นด ๋งํฌ๋์ธ ๋ด๋ถ ์ด์ ํด๊ฒฐํ๋ ค๊ณ ๋ง๋ค์ด์ง ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ (์ค์นผ๋ผ๋ก ๋ง๋ค์ด์ง) ์ด๋ฒคํธ : ํน๋ณํ ๋ฐ์ดํฐ ์ํ์ ๋ณํ๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ : ์ด๋ฒคํธ ๋ฐ์ดํฐ์ ์ง์์ ์ธ ํ๋ฆ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ์๋ ์์๊ณผ ๋์ด ์๋ค. ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ : ์ง์์ ์ผ๋ก ์์ฑ๋๋ ๋ฐ์ดํฐ ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ : ๋ค์ํ ๋น์ฆ๋์ค ๋ก์ง์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ค์ ์ ํฉํ ์ฅ์์ ์ค์๊ฐ์ผ๋ก ์ ๋ฌํด์ค ์ ์๋ ๊ธฐ์ ๊ณ ์ฑ๋ฅ TCP ๋คํธ์ํฌ ํ๋กํ ์ฝ๋ก ํต์ ํ๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ก ๊ตฌ์ฑ๋ ๋ถ์ฐ ์์คํ
โ๏ธTCP ๊ด๋ จ ์ด์ https://jinhanchoi1.medium.com/kafkaconsumer-and-tcp-connection-5a2c8b197732 KafkaConsumer๋ ๋ด๋ถ์ ์ผ๋ก NetworkClient๋ฅผ ํตํด Req..
UDP L4 Transport ํ๋กํ ์ฝ ๋จ์ํ๊ณ ๋น ๋ฅด๋ค. ์ฐ๊ฒฐ์งํฅ X / ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ X / ์์๋ณด์ฅ X IP์์ Port์ ์ฒดํฌ์ฌ๋ง ์ถ๊ฐ๋ ๊ฐ๋
์ปค์คํฐ๋ง์ด์ง์ด ์ฉ์ดํจ TCP L4 Transport ํ๋กํ ์ฝ ๋ฐ์ดํฐ ๋จ์ : ์ธ๊ทธ๋จผํธ ๋
ผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ์์ ๊ธฐ์ตํ์. LAN ์ผ์ด๋ธ์ ๋ถ๋ฆฌํ๋ค๊ฐ ๋ค์ ์ฐ๊ฒฐํด๋ TCP ์ฐ๊ฒฐ์ ์ผ์ ์๊ฐ๋์ ์ฐ๊ฒฐ๋์ด ์๋ค. ๋ฌด์ ์ฐ๊ฒฐ์ ์๊ฐํ๋ฉด ๋ ์ฝ๋ค ์ปค๋ ์์ผ์ ๋ ๊ฐ์ ๋ฒํผ๋ฅผ ๊ฐ์ง๊ณ ์๋ค ์ก์ ์ฉ์ผ๋ก ์ค๋นํ send socket buffer ์์ ์ฉ์ผ๋ก ์ค๋นํ receive socket buffer ์์ผ๊ณผ ์ฐ๊ฒฐ๋ TCP Control Block(TCB) ๊ตฌ์กฐ์ฒด๊ฐ ์๋ค. TCB์ ์๋ ๋ฐ์ดํฐ๋ connection state(LISTEN, ESTABLISHED, TIME_WAIT ..