Choosing the Right MessageBroker
์๋ณธ ๋งํฌ(https://medium.com/@PubNub/kafka-vs-rabbitmq-choosing-the-right-messaging-broker-78ca02530e63)
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก MSA ์๋น์ค ๋ด์์ ์ปดํฌ๋ํธ ๊ฐ์ ํต์ ์ ์ํด์ api ํต์ ๋ ๋ฐฉ๋ฒ์ด์ง๋ง ๋ฉ์ธ์ง ๋ธ๋ก์ปค๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒฝ์ฐ๋ ๋ค๋ฐ์ฌํ๊ฒ ์ผ์ด๋๋ค
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ค์ด ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฉ์ธ์ง ๋ธ๋ก์ปค๋ ํฌ๊ฒ RabbitMQ ์ Kafka 2๊ฐ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค. ๊ฐ๊ฐ์ ๋ฉ์ธ์ง ๋ธ๋ก์ปค๋ค์ ์ฅ๋จ์ ๋ค์ด ์กด์ฌํ๊ณ ํน์ ์ํฉ์ ์๋ง๊ฒ ์ ์ฉํด์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๊ตฌ์กฐ
Kafka
์นดํ์นด๋ ๋์ ์ฒ๋ฆฌ๋, ๋ด๊ฒฐํจ์ฑ ๋ฐ ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ผ๋ก ์ ๋ช ํ๊ณ , topic ์ ๋ฉ์ธ์ง๋ฅผ ๋ฐํํ๊ณ - topic ์ ๊ตฌ๋ ํ์ฌ ๋ฉ์ธ์ง๋ฅผ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๊ณ ์ด๋ฅผ pub-sub ๋ชจ๋ธ์ด๋ผ๊ณ ์ด์ผ๊ธฐํ๋ค ์นดํ์นด์๋ ๋ฉ์ธ์ง๋ฅผ ๋ถ์ฐ ์ปค๋ฐ ๋ก๊ทธ์ ์ ์ฅํจ์ผ๋ก์จ ๋์ ํ์ฅ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด์ ๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋๊ณผ ๋ฉ์ธ์ง ์ฌ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ณ ์ด๋ ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ์ด๋ฒคํธ ์์ฑ(object ์ ๋ชจ๋ ์ํ์ ๋ณํ๋ฅผ ๊ธฐ๋กํ๋ ๋ฐฉ์)์ ์ ํฉํ๋ค
์นดํ์นด์ ๊ตฌ์กฐ๋ ํฌ๊ฒ 3๊ฐ๋ก ๋๋๋ค - producers, broker, consumers producers ๋ ์นดํ์นด์ topic ์ ๋ฉ์ ์๋ฅผ ๋ฐ์ broker ๋ ์นดํ์นด ํด๋ฌ์คํฐ ๊ตฌ์กฐ ๋ด์์ ๋ฉ์ธ์ง๋ฅผ ์ ์ฅํ๊ณ ๋ฉ์ธ์ง๋ฅผ ๋ณต์ฌํ๋ ์ญํ ์ ์ํ consumers ๋ ํ๋ ์ด์์ topic ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๊ฐ๋๋ฐ ์ด ๋ ํ์ฅ์ฑ๋ ์ ๊ณตํ๊ณ ๋ณ๋ ฌ์ฒ๋ฆฌ๋ ๊ฐ๋ฅ
RabbitMQ
RabbitMQ ๋ AMQP(Advanced Message Queue Protocol) ์ ์์๋ฐ์ ์คํ์์ค ๋ฉ์ธ์ง ๋ธ๋ก์ปค์ด๋ค ์ด๋ ์ ํต์ ์ธ ๋ฉ์ธ์ง ํ์ ๋ชจ๋ธ์ด๊ณ ์๋น์ค๋ค๋ก ํ์ฌ๊ธ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ , ๋ฐ์ดํฐ๋ฅผ ํน์ ์ ํด์ง consumer ์๊ฒ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ ๋ณด์ ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ๋ฉ์ธ์ง์ ์์ ์ง์ ๋ฐ ๋ฉ์ธ์ง ๋ผ์ฐํ ์ ์ ์ฐ์ฑ์ ๋ํ์ผ๋ก์จ MSA ๊ตฌ์กฐ์์ ์ฌ์ฉํ๊ธฐ ๊ฐ์ฅ ์ ํฉํ๋ค
RabbitMQ ์ ๊ตฌ์กฐ๋ producer ์ consumer ์ฌ์ด์์ ์ค๊ฐ์ ์ญํ ์ ํ๋ ์ค์ ๋ฉ์ธ์ง ์ค๊ฐ์๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ์ฑ๋จ producer ๊ฐ ์ค๊ฐ์์๊ฒ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ฉด ์ค๊ฐ์๋ ์ง์ ๋ ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ์ธ์ง๋ฅผ ๋๊ธฐ์ด์ ๋ฃ์ด์ฃผ๊ณ consumer ๋ ๋ฉ์ธ์ง๋ฅผ ๋๊ธฐ์ด์์ ๊ฒ์ํด์ ๊บผ๋ด๊ฐ๋ค
์ฑ๋ฅ
Kafka
์ฒ๋ฆฌ์จ์ด ๋๊ณ ์ค์๊ฐ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ ์๋๋ฆฌ์ค์์ ์ฌ์ฉํ๊ธฐ ์ ์ ํ๊ณ ๋์ ํ์ฅ๊ณผ ๋ฎ์ ์ง์ฐ์๊ฐ์ ๊ฐ์ง ํน์ง ์ด๋น ์๋ฐฑ๋ง๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํด ๋น ๋ฅด๊ณ ์ง์์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ์ฌ๋ก์ ์ ํฉํ๋ค ๋ํ ์ฌ๋ฌ broker ์๊ฒ ์ํฌ๋ก๋๋ฅผ ๋ถ์ฐํ์ฌ ์ํ์ ํ์ฅ์ด ๊ฐ๋ฅํ๊ณ ๋ฉ์ธ์ง๋ฅผ ๋์ค์ ์ ์ฅํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅ
RabbitMQ
๋ฉ์ธ์ง์ ์์ ํ์ธ ๋ฐ ๋ฉ์ธ์ง ์ง์์ฑ๊ณผ ๊ฐ์ ์ ๊ณต์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ขฐ ๊ฐ๋ฅํ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌ๋ฐ์ ์ด๋น ์์ฒ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ์ ์์ด ์ค๊ฐ ์์ค์ ์ฒ๋ฆฌ ์๊ตฌ์ฌํญ์ ๊ฐ์ง ์๋น์ค์ ์ ์ฉ์ด ์ข๋ค
์ฌ์ฉ ์ฌ๋ก
Kafka
๋ค์ํ ์ผ์ด์ค์ ์ฌ์ฉ ๊ฐ๋ฅ
์ค์๊ฐ ๋ถ์ ๋ฐ ์คํธ๋ฆฌ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฒคํธ ์์ฑ, ๋ก๊ทธ ์์ง ๋ฐ ์ง๊ณ
๋์ฉ๋ ๋ฉ์ธ์ง ์ฒ๋ฆฌ๋ฅผ ํตํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ๊ฐ๋ฅ
RabbitMQ
MSA ์ฌ์ด์ ๋น๋๊ธฐ์ ํต์
๋ฉ์ธ์ง์ ์ฐ์ ์์ ๋ฐ ํน์ ๋ณต์กํ ๋ผ์ฐํ ์ ์๊ตฌํ์ฌ ์ ๋ขฐ๊ฐ๋ฅํ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌ
๊ทธ๋์ ๋ญ ์ฌ์ฉํ๋ผ๊ณ ?
๋ช ๊ฐ์ง ์ผ์ด์ค๋ค์ ๋ํด์ ์์๋ฅผ ๋ฃ์ด์ค๊ฒ ์๋๋ผ ๋์ ์ฒ๋ฆฌ๋ + ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค >> ์นดํ์นด ์์ ์ ์ธ ๋ฉ์ธ์ง ์ ๋ฌ + ์ ๋นํ ํธ๋ํฝ + ์ ์ฐํ ๋ผ์ฐํ >> ๋๋น ๋ฉ์ธ์ง์ ์ฌ์์ด๋ ๋ก๊ทธ ์ง๊ณ >> ์นดํ์นด
์ด๋ ๊ฒ ์๋ง์ ์ํฉ์ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ kafka ๋ ๋ถ์ฐ์ํคํ ์ฒ๋ ๋จ์ํ๊ฒ ๋๊ธฐ์ด๊ธฐ๋ฐ์ rabbit ๋ณด๋ค ๋ ๋ง์ ์ง์์ด ํ์๋๋ ์ถฉ๋ถํ ๊ณต๋ถ ์ดํ์ ์ ๊ทผ์ด ํ์
Last updated
Was this helpful?