์นดํ์นด ์ปจ์๋จธ
๋ฉํฐ ์ค๋ ๋ ์ปจ์๋จธ
- ํํฐ์ ์ ์ฌ๋ฌ ๊ฐ ์ด์ํ๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ํํฐ์ , ์ปจ์๋จธ ๊ฐ์๋ฅผ ๋์ผํ๊ฒ ๋ง์ถฐ์ผ ํ๋ค.
- ํ ํฝ์ ํํฐ์ ์ 1๊ฐ ์ด์์ผ๋ก ์ด๋ฃจ์ด์ง
- 1๊ฐ์ ํํฐ์
์ 1๊ฐ ์ปจ์๋จธ๊ฐ ํ ๋น๋์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ํํฐ์
๊ฐ์๊ฐ n๊ฐ๋ผ๋ฉด, ๋์ผ ์ปจ์๋จธ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ธ ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์ต๋ n๊ฐ ์ด์ ๊ฐ๋ฅ
- n๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง 1๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ด์
- 1๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค๋ฅผ n๊ฐ ์ด์
- ํํฐ์
๊ฐ์๊ฐ n๊ฐ๋ผ๋ฉด, ๋์ผ ์ปจ์๋จธ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ธ ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์ต๋ n๊ฐ ์ด์ ๊ฐ๋ฅ

- ์ด๋ค ๋ฐฉ์์ผ๋ก ์ด์ํ ์ง๋ ๊ฐ๋ฐ์์ ์ ํ
- ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ์๋ฐ๋ ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ง์ํ๋ฏ๋ก, ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ค๋ฉด, ๋ฉํฐ ์ค๋ ๋๋ก ๋์ํ๋ ๋ฉํฐ ์ค๋ ๋๋ฅผ ๊ฐ๋ฐํ๊ณ ์ ์ฉํ๋ฉด ์ข๋ค.
๋ฉํฐ ์ค๋ ๋ ์ปจ์๋จธ ์ด์ ์ค ๊ณ ๋ ค ์ฌํญ
- ํ๋์ ์ปจ์๋จธ ์ค๋ ๋์์ ์์ธ ์ํฉ (OOM ๋ฑ๋ฑ) ์ด ํฐ์ง ๊ฒฝ์ฐ, ํ๋ก์ธ์ค ์์ฒด๊ฐ ์ข
๋ฃ -> ๋ค๋ฅธ ์ปจ์๋จธ์ ์ํฅ์ ์ค๋ค.
- ์ปจ์๋จธ ์ค๋ ๋๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ์์ ์ค๋ณต ๋๋ ์ ์ค ๋ฐ์ ๊ฐ๋ฅ
- ๊ฐ ์ปจ์๋จธ ์ค๋ ๋ ๊ฐ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก Thread-Safe ํ๊ฒ ์ ์ฉํ์.
- ์ด ์ธ์๋ ๋ค์ํจ. ๊ฐ์ฅ ํจ์จ์ ์ธ ์ปจ์๋จธ๋ฅผ ์ด์ํ๋ ค๋ฉด ๋ฉํฐ ์ค๋ ๋๋ก ๋์ํ๋ ๋ฉํฐ ์ปจ์๋จธ ์ค๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ ์ผ๋ก ์ง์ ์ด์ ๊ฐ๋ฅํ๊ฒ ๊ฐ๋ฐํ๋ฉด ๋๋ค.
์ปจ์๋จธ๋ฅผ ๋ฉํฐ ์ค๋ ๋๋ก ํ์ฉํ๋ ๋ฐฉ์
- ๋ฉํฐ ์์ปค ์ค๋ ๋ ์ ๋ต
- ์ปจ์๋จธ ์ค๋ ๋๋ 1๊ฐ๋ง ์คํ
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์์ปค ์ค๋ ๋ (Worker Thread) ๋ฅผ ์ฌ๋ฌ ๊ฐ ์คํ
- ์ปจ์๋จธ ๋ฉํฐ ์ค๋ ๋ ์ ๋ต
- ์ปจ์๋จธ ์ธ์คํด์ค์์ poll() ํจ์๋ฅผ ํธ์ถํ๋ ์ค๋ ๋๋ฅผ ์ฌ๋ฌ ๊ฐ ๋์ด์ ์ฌ์ฉ

- ๋ฉํฐ ์ค๋ ๋ ์ฌ์ฉ ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ ์ฝ๋๋ค์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋์์ ๊ฐ๋ฅํจ. -> ์๊ฐ์ด ์ ์ฝ ๋๋ค.
- ๋ฉํฐ ์ค๋ ๋๋ฅผ ์์ฑํ๋
ExecutorService
๋ผ๋ ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ์ ๋ ์ฝ๋๋ฅผ ๋ณ๋ ฌ ์ฒ๋ฆฌํ๋ ์ค๋ ๋๋ฅผ ํจ์จ์ ์์ฑ ๋ฐ ๊ด๋ฆฌ ๊ฐ๋ฅ.

- ํ๋์ ํํฐ์ ์ ๋์ผ ์ปจ์๋จธ ์ค ์ต๋ 1๊ฐ๊น์ง ํ ๋น, ํ๋์ ์ปจ์๋จธ๋ ์ฌ๋ฌ ํํฐ์ ์ ํ ๋น ๊ฐ๋ฅ
- ์ด ํน์ง์ ์ด์ฉํ๋ ค๋ฉด 1๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ ํ๊ณ ์ ํ๋ ํ ํฝ ํํฐ์ ๊ฐ์๋งํผ ์ปจ์๋จธ ์ค๋ ๋ ๊ฐ์๋ฅผ ๋๋ ค์ ์ด์ํ๋ ๊ฒ.
- ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ๋๋ ค์ ์ด์ ์, ๊ฐ ์ค๋ ๋์ ๊ฐ ํํฐ์ ์ด ํ ๋น ๋จ, ํํฐ์ ์ ๋ ์ฝ๋๋ค์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ๊ตฌ๋
ํ๊ณ ์ ํ๋ ํ ํฝ์ ํํฐ์
๊ฐ์๋งํผ๋ง ์ปจ์๋จธ ์ค๋ ๋๋ฅผ ์ด์ํด์ผํจ -> ์ฃผ์ ํด์ผํจ
- ์ปจ์๋จธ ์ค๋ ๋๊ฐ ํํฐ์ ๊ฐ์๋ณด๋ค ๋ง์์ง
- ํ ๋นํ ํํฐ์ ๊ฐ์๊ฐ ๋ชจ์๋
- ํํฐ์ ์ ํ ๋น๋์ง ๋ชปํ ์ปจ์๋จธ ์ค๋ ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ํ๊ณ ๋๊ฒ ๋จ.
์ปจ์๋จธ ๋
- ํ ํฝ์ ์ต์ ์คํ์ (LOG-END-OFFSET) ๊ณผ ์ปจ์๋จธ ์คํ์ (CURRENT-OFFSET) ๊ฐ์ ์ฐจ์ด
- ์ปจ์๋จธ๊ฐ ์ ์ ๋์ํ๋์ง ์ฌ๋ถ ํ์ธ ๊ฐ๋ฅ, ์ ํ๋ฆฌ์ผ์ด์ ์ด์ ์ ํ์์ ์ผ๋ก ๋ชจ๋ํฐ๋ง ํด์ผ ํ๋ ์งํ.


- ์ปจ์๋จธ ๋์ ์ปจ์๋จธ ๊ทธ๋ฃน, ํ ํฝ, ํํฐ์ ๋ณ๋ก ์์ฑ๋จ
- 1๊ฐ์ ํ ํฝ์ 3๊ฐ ํํฐ์ , 1๊ฐ์ ์ปจ์๋จธ ๊ทธ๋ฃน์ด ํ ํฝ์ ๊ตฌ๋ ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ์ปจ์๋จธ ๋์ ์ด 3๊ฐ


- ํ๋ก๋์๊ฐ ๋ณด๋ด๋ ๋ฐ์ดํฐ ์์ด ์ปจ์๋จธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋๋ณด๋ค ํฌ๋ค๋ฉด ์ปจ์๋จธ ๋์ ๋์ด๋จ
- ์ ๋ค๋ฉด, ์ปจ์๋จธ ๋์ ์ค์ด๋ค๊ณ ์ต์ ๊ฐ์ 0 -> ์ง์ฐ์ด ์์์ ๋ปํจ.
- ์ปจ์๋จธ ๋์ ๋ชจ๋ํฐ๋งํ๋ฉด์ ์ปจ์๋จธ์ ์ฅ์ ๋ฅผ ํ์ธ ๋ฐ ํํฐ์ ์ ๊ฐ์๋ฅผ ์ ํ๋ ๋ฐ ์ฐธ๊ณ ๊ฐ๋ฅ
์ปจ์๋จธ ๋ ํ์ธ ๋ฐฉ๋ฒ
- ์นดํ์นด ๋ช
๋ น์ด ์ฌ์ฉ
- ๋จ์ : ์ผํ์ฑ์ ๊ทธ์นจ, ์งํ๋ฅผ ์ง์์ ์ผ๋ก ๊ธฐ๋กํ๊ณ ๋ชจ๋ํฐ๋ง ํ๊ธฐ์ ์ข ์์ฝ๋ค.
- ์ปจ์๋จธ ์ ํ๋ฆฌ์ผ์ด์
์์ metrics() ๋ฉ์๋ ์ฌ์ฉ
- ๋จ์ :
- ์ปจ์๋จธ๊ฐ ์ ์ ๋์ํ ๊ฒฝ์ฐ ํ์ธ ๊ฐ๋ฅ
- ๋ชจ๋ ์ปจ์๋จธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจ์๋จธ ๋ ๋ชจ๋ํฐ๋ง ์ฝ๋๋ฅผ ์ค๋ณตํด์ ์์ฑํด์ผํจ.
- ์ปจ์๋จธ ๋์ ๋ชจ๋ํฐ๋ง ํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์๋ Third Party ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจ์๋จธ ๋ ๋ชจ๋ํฐ๋ง์ด ๋ถ๊ฐํจ.
- ๋จ์ :
- ์ธ๋ถ ๋ชจ๋ํฐ๋ง ํด ์ฌ์ฉ
- Datadog, Confluent Control Center ์ ๊ฐ์ ์นดํ์นด ํด๋ฌ์คํฐ ์ข ํฉ ๋ชจ๋ํฐ๋ง ํด์ ์ฌ์ฉํ๋ ๋ฐฉ์๊ณผ ์ปจ์๋จธ ๋ ๋ชจ๋ํฐ๋ง๋ง์ ์ํ ํด์ธ Burrow ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ชจ๋ํฐ๋ง ํด๋ค์ ํด๋ฌ์คํฐ์ ์ฐ๋๋์ด ์ปจ์๋จธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ณ๊ฐ๋ก ์งํ๋ฅผ ์์งํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ ํ๋ก๋์๋ ์ปจ์๋จธ์ ๋์์ ์ํฅ์ ๋ฏธ์น์ง ์์
์ปจ์๋จธ ๋ ๋ชจ๋ํฐ๋ง ์ํคํ ์ฒ

- ์ผ๋ฐ์ ์ผ๋ก Burrow ๋ฅผ ํตํด ์ปจ์๋จธ ๋์ ๋ชจ๋ํฐ๋ง ์, ์ด๋ฏธ ์ง๋๊ฐ ์ปจ์๋จธ ๋์ ๊ฐ๋ณ์ ์ผ๋ก ๋ชจ๋ํฐ๋ง ํ๊ณ ์ถ๋ค.
- ๋ณ๊ฐ์ ์ ์ฅ์์ ๋์๋ณด๋๋ฅผ ์ฌ์ฉํด๋ณด์.
์ปจ์๋จธ ๋ฐฐํฌ ํ๋ก์ธ์ค
์ค๋จ ๋ฐฐํฌ
์ปจ์๋จธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ ์ข ๋ฃ ํ ๊ฐ์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฐฉ์
ํ์ ๋ ์๋ฒ ์์์ ์ด์ํ๋ ๊ธฐ์ ์ ์ ํฉ
์ฅ์
- ์๋ก์ด ๋ก์ง์ด ์ ์ฉ๋ ์ ๊ท ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ์ ํ๋ฅผ ๋ช ํํ๊ฒ ํน์ ์คํ์ ์ง์ ์ผ๋ก ๋๋ ์ ์์.
- ์ ๊ท ๋ฐฐํฌํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์๊ฐ ๋ฐ์ํด์ ๋กค๋ฐฑํ ๋ ์ ์ฉํจ.
- ๋กค๋ฐฑ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์๋ณตํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ธฐ๋ณธ ์ฑ์ด ์ฒ๋ฆฌ ์๋ฃํ๋ ์คํ์ ์ผ๋ก ์ฌ์ง์ ํ๋ฉด ๋๊ธฐ ๋๋ฌธ.
์ค๋จ ๋ฐฐํฌ๋ ์ปจ์๋จธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ ์ข ๋ฃํ ์ดํ์ ๊ฐ์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฐฉ์์ด๋ค.
์ด ๋ฐฉ๋ฒ์ ํ์ ๋ ์๋ฒ ์์์ ์ด์ํ๋ ๊ธฐ์ ์ ์ ํฉํ๋ค.
์ค๋จ ๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ก์ด ๋ก์ง์ด ์ ์ฉ๋ ์ ๊ท ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ์ ํ๋ฅผ ๋ช ํํ๊ฒ ํน์ ์คํ์ ์ง์ ์ผ๋ก ๋๋ ์ ์๋ค๋ ์ ์ด ์ฅ์ ์ด๋ค.
์ด๋ฌํ ํน์ง์ ์ ๊ท ๋ฐฐํฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์๊ฐ ๋ฐ์ํด์ ๋กค๋ฐฑํ ๋ ์ ์ฉํ๋ค.
๋กค๋ฐฑ์ ํตํด ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์๋ณตํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ๋ฆฌ ์๋ฃํ๋ ์คํ์ ์ผ๋ก ์ฌ์ง์ ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฌด์ค๋จ ๋ฐฐํฌ
- ๋ฌด์ค๋จ ๋ฐฐํฌ๋ ์ธ์คํด์ค์ ๋ฐ๊ธ๊ณผ ๋ฐํ์ด ๋ค์ ์ ์ฐํ ๊ฐ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
- ๋ฌด์ค๋จ ๋ฐฐํฌ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
- ๋ธ๋ฃจ/๊ทธ๋ฆฐ
- ์ด์ ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ ๊ท ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ๋์๋๊ณ ํธ๋ํฝ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ด ๋ฐฉ์์ ํํฐ์
๊ฐ์์ ์ปจ์๋จธ ๊ฐ์๋ฅผ ๋์ผํ๊ฒ ์คํํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ํ ๋ ์ ์ฉํ๋ค.
- ์ ๊ท ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ๋์ผ ์ปจ์๋จธ ๊ทธ๋ฃน์ผ๋ก ํํฐ์ ์ ๊ตฌ๋ ํ๋๋ก ์คํํ๋ฉด ์ ๊ท ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจ์๋จธ๋ค์ ํํฐ์ ์ ํ ๋น ๋ฐ์ง ๋ชปํ๊ณ ์ ํด ์ํ(idle)๋ก ๊ธฐ๋ค๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. (์ฌ์ฐจํ๋ฉด ๋ค์ ๋๋ฆฌ๋ฉด๋๋ค)
- ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋ฆฌ๋ฐธ๋ฐ์ค๊ฐ ํ ๋ฒ๋ง ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์์ ํํฐ์ ์ ์ด์ํ๋ ๊ฒฝ์ฐ์๋ ์งง์ ๋ฆฌ๋ฐธ๋ฐ์ค ์๊ฐ์ผ๋ก ๋ฐฐํฌ๋ฅผ ์ํํ ์ ์๋ค.
- ๋กค๋ง
- ์ธ์คํด์ค ํ ๋น๊ณผ ๋ฐํ์ผ๋ก ์ธํ ๋ฆฌ์์ค ๋ญ๋น๋ฅผ ์ค์ด๋ฉด์ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ํ ์ ์๋ค.
- 2๊ฐ์ ์ธ์คํด์ค ์ค 1๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ ๊ท ๋ฒ์ ์ผ๋ก ์คํํ๊ณ ๋ชจ๋ํฐ๋งํ ์ดํ์ ๋๋จธ์ง 1๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ ๊ท ๋ฒ์ ์ผ๋ก ๋ฐฐํฌํ์ฌ ๋กค๋ง ์ ๊ทธ๋ ์ด๋๋ฅผ ์งํํ ์ ์๋ค.
- ํํฐ์ ๊ฐ์๊ฐ ๋ง์์๋ก ๋ฆฌ๋ฐธ๋ฐ์ค ์๊ฐ๋ ๊ธธ์ด์ง๋ฏ๋ก ํํฐ์ ๊ฐ์๊ฐ ๋ง์ง ์์ ๊ฒฝ์ฐ์ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
- ์นด๋๋ฆฌ(canary)
- ์ผ๋ถ๋ถ์ ์ ๊ท ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋จผ์ ๋ฐฐํฌํจ์ผ๋ก์จ ์ด์๊ฐ ์๋์ง ํ์ธ ํ ๋๋จธ์ง๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ์
- ์ฌ์ ๋ฐฐํฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธ๊ฐ ์๋ฃ๋๋ฉด ๋๋จธ์ง ๋ฐฐํฌํด์ผํ ๋์๋ค์ ๋กค๋ง ๋๋ ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐฉ์์ค ํ๊ฐ์ง๋ก ๋ฐฐํฌํ๋ฉด ๋๋ค.