Kafka
Last updated
Last updated
๊ธฐ์กด ๋งํฌ๋์ธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ ์ ๊ฐ ํ์ดํ๋ผ์ธ์ด ํํธํ๋๊ณ ์์คํ ๋ณต์ก๋๊ฐ ๋์ ์๋ก์ด ์์คํ ์ ํ์ฅํ๊ธฐ ์ด๋ ค์ด ์ํฉ์ด์์
๊ธฐ์กด ๋ฉ์์ง ํ ์์คํ ์ธ ActiveMQ๋ฅผ ์ฌ์ฉํ์ง๋ง, ๋งํฌ๋์ธ์ ์๋ง์ ํธ๋ํฝ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์๋ ํ๊ณ๊ฐ ์์์
์ด๋ก ์ธํด ์๋ก์ด ์์คํ ์ ๊ฐ๋ฐ ํ์์ฑ์ด ๋์์ก๊ณ , ๋งํฌ๋์ธ์ ๋ช๋ช ๊ฐ๋ฐ์๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์๋ก์ด ์์คํ ์ ๊ฐ๋ฐ
ํ๋ก๋์์ ์ปจ์๋จธ์ ๋ถ๋ฆฌ
๋ฉ์์ง ์์คํ ๊ณผ ๊ฐ์ด ์๊ตฌ ๋ฉ์์ง ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ปจ์๋จธ์๊ฒ ํ์ฉ
๋์ ์ฒ๋ฆฌ๋์ ์ํ ๋ฉ์์ง ์ต์ ํ
๋ฐ์ดํฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ค์ผ์ผ์์์ด ๊ฐ๋ฅํ ์์คํ
์นดํ์นด๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ๋ชจ๋ ์ด๋ฒคํธ/๋ฐ์ดํฐ์ ํ๋ฆ์ ์ค์์์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ผ๋ฉฐ,
์๋น์ค ์ํคํ ์ฒ๊ฐ ๊ธฐ์กด์ ๋นํด ๊ด๋ฆฌํ๊ธฐ ์ฌํํด์ก์
Publisher์ Subscriber๋ก ์ด๋ฃจ์ด์ง ๋น๋๊ธฐ ๋ฉ์์ง ์ ์ก ๋ฐฉ์
๋ฉ์์ง๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐ์ดํฐ ๋จ์๋ฅผ ๋ณด๋ด๋ ์ธก(Publisher/Producer)์์ ๋ฉ์์ง ์์คํ ์ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๋ฉด ๊ฐ์ ธ๊ฐ๋ ์ธก(Subscriber/Consumer)๋ ๋ฐ์ดํฐ๋ฅผ ์์
๋ฐ์ ์์ ๋ฉ์์ง์๋ ์์ ์๊ฐ ์ ํด์ ธ ์์ง ์์ ์ํ๋ก ๋ฐํ(Publish)
๊ตฌ๋ (Subscribe)์ ์ ์ฒญํ ์์ ์๋ง์ด ์ ํด์ง ๋ฉ์์ง๋ฅผ ๋ฐ์
์์ ์๋ ๋ฐ์ ์ ์ ๋ณด๊ฐ ์์ด๋ ๋ฉ์์ง ์์ ์ด ๊ฐ๋ฅ
N:N์ฐ๊ฒฐ์ด๋ฏ๋ก ํด๋ผ์ด์ธํธ ๊ฐ์๊ธฐ ๋ง์์ง ๊ฒฝ์ฐ ๋๋ ค์ง ์ ์๊ณ ์ด๋ฅผ ๋์ํ๊ธฐ ์ํ ํ์ฅ์ฑ์ด ๋จ์ด์ง
ํน์ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ด๋์ ๋ฉ์์ง๋ฅผ ๋ฐ์ง ๋ชปํ๊ฒ ๋ ๊ฒฝ์ฐ ๋ฉ์์ง๊ฐ ์ ์ค๋ ์ ์์
์๋๋ฐฉ์
ํ๋ก๋์๊ฐ ๋ฉ์์ง๋ฅผ ์ปจ์๋จธ์๊ฒ ์ง์ ์ ๋ฌํ๋ ๊ฒ์ด ์๋๋ผ, ์ค๊ฐ์ ๋ฉ์์ง ์์คํ ์ ์ ๋ฌ (์์ ์ฒ IDํฌํจ)
๋ฉ์์ง ์์คํ ์ ๊ตํ๊ธฐ๊ฐ ๋ฉ์์ง์ ์์ ์ฒ ID๊ฐ์ ํตํด ์ปจ์๋จธ๋ค์ ํ์ ๋ฉ์์ง๋ฅผ ์ ๋ฌ (push)
์ปจ์๋จธ๋ ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ค๊ฐ ํ์ ๋ฉ์์ง๊ฐ ์์ ๊ฒฝ์ฐ ๊ฐ์ ํ์
์ฅ์
ํน์ ๊ฐ์ฒด๊ฐ ์์ ๋ถ๋ฅ ์ํ๊ฐ ๋๋๋ผ๋ ๋ฉ์์ง ์์คํ ๋ง ์ด์์๋ค๋ฉด ๋ฉ์์ง๊ฐ ์ ์ค๋์ง ์์
๋ฉ์์ง ์์คํ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๊ธฐ ๋๋ฌธ์ ํ์ฅ์ฑ์ด ์ฉ์ด
๋จ์
์ง์ ํต์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉ์์ง๊ฐ ์ ์ ๋ฌ๋์๋์ง ํ์ ํ๊ธฐ ํ๋ฌ
์ค๊ฐ์ ๋ฉ์์ง ์์คํ ์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ ๋ฉ์์ง ์ ๋ฌ ์๋๊ฐ ๋น ๋ฅด์ง ์์
ํ๋ก๋์(Producer)
๋ฉ์์ง๋ฅผ ์์ฐํ์ฌ ๋ธ๋ก์ปค์ ํ ํฝ์ผ๋ก ์ ๋ฌํ๋ ์ญํ
๋ธ๋ก์ปค(Broker)
์นดํ์นด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์น๋์ด ์๋ ์๋ฒ ๋๋ ๋ ธ๋๋ฅผ ์ง์นญ
์ปจ์๋จธ(Consumer)
๋ธ๋ก์ปค์ ํ ํฝ์ผ๋ก๋ถํฐ ์ ์ฅ๋ ๋ฉ์์ง๋ฅผ ์ ๋ฌ๋ฐ๋ ์ญํ
์ฃผํคํผ(Zookeeper)
๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฝ๋๋ค์ด์ ์์คํ
๋ถ์ฐ๋ ๋ ธ๋์ ์ ๋ณด๋ฅผ ์ค์์ ์ง์คํ๊ณ ๊ตฌ์ฑ๊ด๋ฆฌ, ๊ทธ๋ฃน ๋ค์ด๋ฐ, ๋๊ธฐํ ๋ฑ์ ์๋น์ค ์ํ
ํ๋ก๋์๋ ์ ๋ฉ์์ง๋ฅผ ์นดํ์นด์ ์ ๋ฌ
์ ๋ฌ๋ ๋ฉ์์ง๋ ๋ธ๋ก์ปค์ ํ ํฝ์ด๋ผ๋ ๋ฉ์์ง ๊ตฌ๋ถ์์ ์ ์ฅ
์ปจ์๋จธ๋ ๊ตฌ๋ ํ ํ ํฝ์ ์ ๊ทผํ์ฌ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ด (pull ๋ฐฉ์)
๋์คํฌ์ ๋ฉ์์ง ์ ์ฅ
๊ธฐ์กด ๋ฉ์์ง ์์คํ ๊ณผ ๊ฐ์ฅ ํฐ ํน์ง
๊ธฐ์กด ๋ฉ์์ง ์์คํ ์ ์ปจ์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ์๋นํ๋ฉด ํ์์ ๋ฐ๋ก ๋ฉ์์ง๋ฅผ ์ญ์
ํ์ง๋ง, ์นดํ์นด๋ ์ปจ์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ์๋นํ๋๋ผ๋ ๋์คํฌ์ ๋ฉ์์ง๋ฅผ ์ผ์ ๊ธฐ๊ฐ ๋ณด๊ดํ๊ธฐ ๋๋ฌธ์ ๋ฉ์์ง์ ์์ค์ด ์์ (์์์ฑ)
๋ฉํฐ ํ๋ก๋์, ๋ฉํฐ ์ปจ์๋จธ
์นดํ์นด์ ๊ฒฝ์ฐ ๋์คํฌ์ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๋ ํน์ง์ผ๋ก ์ธํด,
ํ๋ก๋์์ ์ปจ์๋จธ ๋ชจ๋ ํ๋ ์ด์์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์
๋ถ์ฐํ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ
๋จ์ผ ์์คํ ๋๋น ์ฑ๋ฅ์ด ์ฐ์ํ๋ฉฐ, ์์คํ ํ์ฅ์ด ์ฉ์ดํจ
์ผ๋ถ ๋ ธ๋๊ฐ ์ฃฝ๋๋ผ๋ ๋ค๋ฅธ ๋ ธ๋๊ฐ ํด๋น ์ผ์ ์ง์ (๊ณ ๊ฐ์ฉ์ฑ)
ํ์ด์ง ์บ์
์นดํ์นด๋ ์์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ฉํด ๋์คํฌ Read/Write ๋ฅผ ํ์ง ์๊ณ ํ์ด์ง ์บ์๋ฅผ ํตํ Read/Write์ผ๋ก ์ธํด ์ฒ๋ฆฌ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ
๋ฐฐ์น ์ ์ก ์ฒ๋ฆฌ
์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ ๋ฉ์์ง ํต์ ์ ํ๋์ฉ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ๊ทธ๋งํผ ๋คํธ์ํฌ ์๋ณต์ ์ค๋ฒํค๋๊ฐ ๋ฐ์
์ด๋ก์ธํด, ๋ฉ์์ง๋ฅผ ์์ ๋จ์๋ก ๋ฌถ์ด ๋ฐฐ์น ์ฒ๋ฆฌ๋ฅผ ํจ์ผ๋ก์จ ์๋ ํฅ์์ ํฐ ๋์์ ์ค
์นดํ์นด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ํฝ๊ณผ ํํฐ์ ์ด๋ผ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์กด์ฌ
๋ฉ์์ง๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌถ์ ๊ฐ๋ (๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ / ํ์ผ์์คํ ์ ํด๋์ ์ ์ฌํ ๊ฐ๋ )
ํ๋ก๋์๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ๊ฒฝ์ฐ ํ ํฝ์ ๋ฉ์์ง๊ฐ ์ ์ฅ๋จ.
ํ ํฝ์ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ ์ ์ฅ์์ด๋ฉฐ ๋ฉ์์ง๊ฐ ์ ์ฅ๋๋ ์์น
์ฌ๋ฌ๊ฐ์ ํ๋ก๋์์์ ํ๊ฐ์ ํํฐ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๊ฒฝ์ฐ ๋ณ๋ชฉ์ด ์๊ธฐ๊ณ , ๋ฉ์์ง์ ์์๋ฅผ ๋ณด์ฅํ ์ ์๊ฒ ๋จ
๊ทธ๋ ๊ธฐ์, ํํฐ์ ์ ์ฌ๋ฌ๊ฐ๋ก ๋๋ฆฌ๊ณ ๊ทธ ์๋งํผ ํ๋ก๋์๋ ๋๋ ค ํ๋์ ํํฐ์ ๋ง๋ค ํ๋์ ํ๋ก๋์ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด ํจ์ฌ ๋น ๋ฆ
๊ทธ๋ ๋ค๋ฉด ํํฐ์ ์ ๋ง์ ์๋ก ์ข์๊ฐ?
ํ์ผ ํธ๋ค๋ฌ์ ๋ญ๋น๊ฐ ์กด์ฌ
๊ฐ ํํฐ์ ์ ๋ธ๋ก์ปค์ ๋๋ ํ ๋ฆฌ์ ๋งคํ๋๊ณ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ง๋ค 2๊ฐ์ ํ์ผ(์ธ๋ฑ์ค, ์ค์ ํ์ผ)์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ฌด ๋ง์ ํ์ผ ํธ๋ค์ด ์๊ธธ ๊ฒฝ์ฐ ๋ฆฌ์์ค ๋ญ๋น๊ฐ ์๊น
์ฅ์ ๋ณต๊ตฌ ์๊ฐ์ด ์ฆ๊ฐํ ์ ์์
์นดํ์นด๋ ๋ฆฌํ๋ฆฌ์ผ์ด์ (Replication)์ ์ง์ํ๊ณ , ์ด๋ฅผ ํตํด ์ง์์ ์ผ๋ก ๋ฆฌ๋ ํํฐ์ ์ ํ๋ก์ ํํฐ์ ์ผ๋ก ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ ํ๊ฒ๋จ
ํ์ง๋ง ํํฐ์ ์๊ฐ ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ํ์ด ๋๋ ค์ ธ ์ฅ์ ๋ณต๊ตฌ์๊ฐ์ด ์ฆ๊ฐํ ์ ์์
์ถํ ํํฐ์ ์๋ฅผ ์ค์ด๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅ
์นดํ์นด์์ ํํฐ์ ์๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ ์๋ฌด๋๋ ๊ฐ๋ฅํ์ง๋ง ํํฐ์ ์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์์. ๋ง์ฝ ์ค์ด๊ณ ์ถ๋ค๋ฉด ํ ํฝ ์์ฒด๋ฅผ ์ญ์ ํ๋ ๊ฒ ๋ง๊ณ ๋ ๋ฐฉ๋ฒ์ด ์์
์คํ์ (offset)
ํํฐ์ ๋ง๋ค ๋ฉ์์ง๊ฐ ์ ์ฅ๋๋ ์์น
ํํฐ์ ๋ด์์ ์์ฐจ์ ์ผ๋ก ์ ๋ํฌํ๊ฒ ์ฆ๊ฐํ๋ ์ซ์ ํํ๋ก์ ๋์ผ ํํฐ์ ๋ด ๋ฉ์์ง์ ์์๋ฅผ ๋ณด์ฅํด์ค
์ปจ์๋จธ๋ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ฌ ๋๋ง๋ค ์คํ์ ์ ๋ณด๋ฅผ ์ปค๋ฐ(commit)ํจ์ผ๋ก์จ ๊ธฐ์กด์ ์ด๋ ์์น๊น์ง ๊ฐ์ ธ์๋์ง ์ ์ ์๊ฒ ๋จ
ํํฐ์ ์ ์ฌ๋ฌ๊ฐ ์ง์ ํ ๊ฒฝ์ฐ
ํ๋ก์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋, ํํฐ์ ์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ ๋ฉ์์ง๋ ๊ฐ๊ฐ์ ํํฐ์ ์ผ๋ก ์์ฐจ์ ์ผ๋ก ๋ฐฐ๋ถ (Round-robin ๋ฐฉ์)
๋ฉ์์ง์ ์์๋ ์ค๋ก์ง ๋์ผ ํํฐ์ ๋ด ์คํ์ ์ ๊ธฐ์ค์ผ๋ก๋ง ๋ณด์ฅ๋๊ธฐ ๋๋ฌธ์,
์ฌ๋ฌ๊ฐ์ ํํฐ์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋์ผ ํํฐ์ ๋ด์์๋ ์์๊ฐ ๋ณด์ฅ๋์ง๋ง, ํํฐ์ ๊ณผ ํํฐ์ ์ฌ์ด์์๋ ์์๋ฅผ ๋ณด์ฅํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ ๊ฒฝ์ฐ ์์๊ฐ ์์ผ ์ ์์
์ ์ฒด ๋ฉ์์ง์ ์์๋ฅผ ๋ณด์ฅํ๊ณ ์ถ์ ๊ฒฝ์ฐ partition์ 1๊ฐ๋ก๋ง ์ค์ ํด์ผ ํจ
ํ์ง๋ง ํํฐ์ ์ด ํ๋์ด๋ฏ๋ก ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅ
๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ๋ฐ์ดํฐ ์ ์ค์ ๋ง๊ธฐ ์ํด replication์ ์ํ
์๋ณธ ํํฐ์ ์ ๊ฒฝ์ฐ '๋ฆฌ๋'๊ฐ ๋๊ณ , ๋ณต์ ํํฐ์ ์ ๊ฒฝ์ฐ 'ํ๋ก์'๊ฐ ๋จ
๋ง์ฝ ๋ฆฌ๋ ํํฐ์ ์ด ์๋ ๋ธ๋ก์ปค๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ, ๋ณต์ ํํฐ์ ์ ๊ฐ์ง ๋ธ๋ก์ปค์ ํ๋ก์ ํํฐ์ ์ด ์๋ก์ด ๋ฆฌ๋๊ฐ ๋์ด ์ ์์ ์ผ๋ก ํ๋ก๋์์ ์์ฒญ์ ์ฒ๋ฆฌ
๋ฆฌ๋์ ํ๋ก์๋ก ์ด๋ฃจ์ด์ง ๋ฆฌํ๋ฆฌ์ผ์ด์ ๊ทธ๋ฃน
๋ฆฌํ๋ฆฌ์ผ์ด์ ๊ทธ๋ฃน ๋ด ๋๊ธฐํ ๋ฐ ์ ๋ขฐ์ฑ ์ ์ง
ํ๋ก์๋ Read/Write ๊ถํ์ด ์๊ณ ์ค๋ก์ง ๋ฆฌ๋๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ๊ธฐ ๋๋ฌธ์ ํน์ ํ๋ก์๊ฐ ๋ค์ด๋์ ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ ๋ชปํ ๊ฒฝ์ฐ ๋๊ธฐํ ๋ฌธ์ ๋ฐ์
์ด๋ฌํ ๋ฌธ์ ๋ก ์ธํด, ๋ฌธ์ ๊ฐ ๊ฐ์ง๋ ํ๋ก์(์ค์ ๋ ์ผ์ ์ฃผ๊ธฐ(replica.lag.time.max.ms)๋งํผ ์์ฒญ์ด ์ค์ง ์๋ ํ๋ก์)๋ ISR ๊ทธ๋ฃน์์ ์ถ๋ฐฉ๋จ
์ปจ์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ์๋นํ๋ ์๊ฐ๋ณด๋ค ํ๋ก๋์๊ฐ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ์๋๊ฐ ๋ ๋นจ๋ผ์ ๋ฉ์์ง๊ฐ ์ ์ ์์ผ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ
๋์ผ ํ ํฝ์ ๋ํด ์ฌ๋ฌ ์ปจ์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์๋๋ก ์ปจ์๋จธ ๊ทธ๋ฃน์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ ๊ณต
์๋์ ๊ฐ์ด ํ๋์ consumer๊ฐ ํ๋ก๋์์ ๋ฉ์์ง ์ ์ก ์๋๋ฅผ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ ๊ฒฝ์ฐ
์๋์ ๊ฐ์ด ์ปจ์๋จธ๋ฅผ ํ์ฅํ์ฌ ํ๋์ ํํฐ์ ๋น ํ๋์ ์ปจ์๋จธ๊ฐ ์ฐ๊ฒฐ๋๋๋ก ํ ์ ์์ (๋ฆฌ๋ฐธ๋ฐ์ค, rebalance)
ํ๋์ ํํฐ์ ๋น ํ๋์ ์ปจ์๋จธ๊ฐ 1:1 ์ฐ๊ฒฐ๋์ด์ผ ํ๋ฏ๋ก ์๋์ ๊ฐ์ด ํ์ฅํ ์๋ ์์
์ปจ์๋จธ ๊ทธ๋ฃน์ ์ปจ์๋จธ๊ฐ ์ผ์ ํ ์ฃผ๊ธฐ๋ก ํ๋ ํํธ๋นํธ(์ปจ์๋จธ๊ฐ poll()ํ๊ฑฐ๋ ๋ฉ์์ง์ ์คํ์ ์ ์ปค๋ฐํ ๋ ๋ณด๋)๋ฅผ ํตํด ์ปจ์๋จธ๊ฐ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๊ณ ์๋ค๋ ๊ฒ์ ์ธ์งํ๋ฉฐ, ๋ง์ฝ ์ค๋ซ๋์ ํํธ๋นํธ๊ฐ ์๋ค๋ฉด ํด๋น ์ปจ์๋จธ์ ์ธ์ ์ด ํ์์์๋๊ณ ๋ฆฌ๋ฐธ๋ฐ์ค๋ฅผ ์ํ
์นดํ์นด์ ๋ฉ์์ง ํ ์์คํ ์ ํ์์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ๊ฐ๋ ์ฌ๋ผ์ง์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ปจ์๋จธ ๊ทธ๋ฃน์ด ๋์ผ ํ ํฝ์ ๋ถ์ ์ ์์
๋ชจ๋ ๋น๋๊ธฐ ํต์ ์ ์ ๊ณตํ๋ฉฐ, ํ๋ก๋์์ ์ปจ์๋จธ๊ฐ ๋ถ๋ฆฌ๋์ด ์์
AMQP(Advanced Message Queuing Protocol, ํด๋ผ์ด์ธํธ์ ๋ฏธ๋ค์จ์ด๊ฐ ๋ฉ์์ง ๊ตํ ๊ฐ๋ฐฉํ ํ์ค ํ๋กํ ์ฝ)์ ์ํด ๊ฐ๋ฐ ๋์ด ๋ค๋ฅธ AMQP ํ๋กํ ์ฝ ๊ธฐ๋ฐ MQ(ex. RabbitMQ, ActiveMQ, ZeroMQ)๋ฑ๊ณผ ๋ฐ์ดํฐ ๊ตํ์ด ์์
ํ์์ ๋ฐ๋ผ ๋๊ธฐ/๋น๋๊ธฐ ๊ตฌํ ๊ฐ๋ฅ
์ ์ฐํ ๋ผ์ฐํ ์ด ๊ฐ๋ฅ(exchanger๊ฐ ๋ฉ์์ง๋ฅผ ์ ์ ํ ๊ฐ๊ฐ์ queue์ ๋ถ๋ฐฐ)ํ์ฌ ๊ด๋ฆฌ๊ฐ ์ฝ๊ณ , ๊ด๋ฆฌUI๊ฐ ์ง๊ด์ ์ด๊ณ ํธ๋ฆฌ
broker ์ค์ฌ์ ์ด๋ฉฐ, producer์ consumer๊ฐ ๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ์ ์ด์ ์ ๋ง์ถ์ด ์ ๋ขฐ์ฑ์ด ๋์
20k+/sec ์ฒ๋ฆฌ ๋ณด์ฅ
๊ณ ์ฑ๋ฅ, ๊ณ ๊ฐ์ฉ์ฑ, ํ์ฅ์ฑ
๋ถ์ฐ ์ฒ๋ฆฌ ์์คํ ์ผ๋ก์, ํ์ฅ์ฑ(scalability) ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ(high available)์ด ๋์
๋ฐ๋ผ์, ๋ ธ๋ ์ฅ์ ์ ๋ํ ๋์์ฑ์ด ๋์
๋ฐฐ์น ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด ๋คํธ์ํฌ ์๋ณต ์ค๋ฒํค๋๋ฅผ ์ค์ผ ์ ์์
๋์คํฌ ํ์ผ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ์ผ๋ก์จ ์์์ฑ(persistency)์ ๋ณด์ฅ (์ฆ, ์ค๋ฅ ์ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅ)
Producer ์ค์ฌ์ ์ด๋ฉฐ, ๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ์ด optional
๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ์ ํ ๊ฒฝ์ฐ ์ฒ๋ฆฌ์๋๊ฐ ๋๋ ค์ ธ(๋ฆฌ๋์ ํ๋ก์ ๋ชจ๋์๊ฒ ack(์๋ต ์น์ธ)์ ๋ฐ์ผ์ ํ๋ฏ๋ก) ์นดํ์นด์ ์ฒ๋ฆฌ์๋ ์ธก๋ฉด์ ์ฅ์ ์ด ์์
๋ผ์ฐํ ๊ธฐ๋ฅ์ด ์์ (producer๊ฐ ์ง์ ์ ์ ํ topic๊ณผ partion์ผ๋ก ๋ณด๋ด์ค์ผ ํจ)
100k+/sec ์ฒ๋ฆฌ ๋ณด์ฅ
Producer์ ๋ฉ์์ง ๋ฐฐ์น ์ฒ๋ฆฌ ์ฑ๋ฅ ๋น๊ต
Consumer ๋ฉ์์ง ์์ ์ฒ๋ฆฌ ์ฑ๋ฅ ๋น๊ต
๋์ ์ฒ๋ฆฌ๋ ๋ฐ ๊ณ ์ฑ๋ฅ/๋ถ์ฐ/์ค์ผ์ผ ์์์ด ์ค์ํ ๊ฒฝ์ฐ
๊ฐ์ฉ์ฑ(์ฅ์ ๋์)์ด ๋์์ผ ํ๋ ๊ฒฝ์ฐ
๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ์ด ํ์์ ์ด์ง ์์ ๊ฒฝ์ฐ
๋ฉ์์ง ์ฒ๋ฆฌ ์์๊ฐ ๋ณด์ฅ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ
์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
๋ฉ์์ง ์์์ฑ์ด ํ์ํ ๊ฒฝ์ฐ
๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ฉ์์ง ํ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ (๋ผ์ฐํ ๊ธฐ๋ฅ์ด ์ ์ฐํจ)
๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ์ด ํ์์ ์ธ ๊ฒฝ์ฐ
๋ฉ์์น ์ฒ๋ฆฌ ์์๊ฐ ๋ณด์ฅ๋์ง ์์๋ ๋๋ ๊ฒฝ์ฐ
๋ฉ์์ง ์์์ฑ X
Kafka์ ์ ์ฌํ ์ํคํ ์ฒ (topic ๊ฐ๋ )
ํด๋ผ์ฐ๋ ์๋น์ค๋ก์ ๋ณ๋์ ์ค์น๋ ์ด์์ด ํ์์์
๋ฉ์์ง ์ฒ๋ฆฌ ์์ ๋ณด์ฅ์ด ์๋จ(๋ถ์ฐํ ์ํคํ ์ฒ)
๋ฉ์์ง ์์์ฑ X (์ ์ฅ๊ธฐ๊ฐ ์ต๋ 7์ผ)