๐๋ฉ์ธ์งํ๋?
๋ฉ์์ง ํ(Message Queue)๋ ์ํํธ์จ์ด ์์คํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ค๊ฐ ๋งค๊ฐ์ฒด
์ด๋ฅผ ํตํด ์์คํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๊ณ ์ฒ๋ฆฌํ ์ ์๋ค. ๋ฉ์์ง ํ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ถ์ฐ ์์คํ ์์ ์ฌ์ฉ๋๋ฉฐ, ์์คํ ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ํ์ฅ์ฑ์ ๋์ด๋ ๋ฐ ๋์์ ์ค๋ค.
๐๋ฉ์์ง ํ์ ์ฃผ์ ๊ตฌ์ฑ ์์:
- ๋ฉ์์ง: ๋ฉ์์ง ํ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ ๋จ์๋ก ์์ฒญ ๊ทธ ์์ฒด. ๋ฉ์์ง๋ ํ ์คํธ, JSON, ๋ฐ์ด๋๋ฆฌ ๋ฑ ๋ค์ํ ํ์์ผ๋ก ๊ตฌ์ฑ๋ ์ ์๋ค.
- ํ: ๋ฉ์์ง๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก FIFO(์ ์ ์ ์ถ) ๋ฐฉ์์ผ๋ก ๋์ํ๋ฉฐ, ๋จผ์ ๋์ฐฉํ ๋ฉ์์ง๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋ค.
- ์์ฐ์(Producer): ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ ํ์ ์ ์กํ๋ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ก์ด ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฉ์์ง๋ก ํ์ ๋ณด๋ผ ์ ์๋ค.
- ์๋น์(Consumer): ํ์์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์์ ์ฒ๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์๋น์๋ ๋ฉ์์ง๋ฅผ ์ฝ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ฑฐ๋, ํน์ ์์ ์ ์ํํ ์ ์๋ค.
- ๋ธ๋ก์ปค(Broker): ์ ์ฒด๋ฅผ ์ง์นญํ๋ ์์คํ , ๋ฉ์์ง ํ ์์คํ ์ ๊ด๋ฆฌํ๊ณ ๋ฉ์์ง๋ฅผ ์ค๊ณํ๋ ์ค๊ฐ ๋งค๊ฐ์ฒด์ ๋๋ค. ๋ธ๋ก์ปค๋ ๋ค์ํ ํ๋กํ ์ฝ์ ํตํด ์์ฐ์์ ์๋น์ ๊ฐ์ ํต์ ์ ๋์์ค๋๋ค. ex) RebbitMQ์ ์นดํ์นด ⇒ ๋ด๋ถ์ ์์ฐ์,์๋น์ ๊ธฐ๋ฅ
๐๋ฉ์์ง ํ์ ์ฅ์ :
- ๋น๋๊ธฐ ํต์ : ์์ฐ์์ ์๋น์๋ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฉฐ, ์๊ฐ์ ์ ์ฝ ์์ด ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ํ๋ ฅ์ฑ๊ณผ ํ์ฅ์ฑ: ์์คํ ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ ธ, ํ๋์ ์์คํ ์ด ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ค๋ฅธ ์์คํ ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋ํ, ํ์์ ๋ฐ๋ผ ๋ธ๋ก์ปค๋ ํ๋ฅผ ๊ต์ฒด,ํ์ฅํ์ฌ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. (#๊ฒฐํฉ๋๋ A๋ฅผ ํ๋ฉด์ B๋ฅผ ๋ชปํ๋ ์ฎ์ด์๋ ๊ฒ์ ๋งํจ)
- ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ํจ์จ์ฑ: ์ผ๋ถ ์์ ์ด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ, ๋ฉ์์ง ํ๋ฅผ ํตํด ์์ฐ์๋ ๋ฉ์์ง๋ฅผ ์ ์กํ ๋ค ๋ค๋ฅธ ์์ ์ ๊ณ์ํ ์ ์์ต๋๋ค. ์๋น์๋ ๋์ค์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์์
- ๋ฐ์ดํฐ ๋ณต์ ์ ์์ ์ฑ: ๋ฉ์์ง ํ ์์คํ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ๋ณต์ ํ์ฌ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํจ
๐์ค์ ๋ฉ์ธ์ง ํ ์ฌ์ฉ ์:
๋ฉ์ธ์ง ํ๋ก ์ ์ ์ ์ถ๋ก DB์ชฝ์ ํ๋์ฉ ๋ณด๋ผ ์ ์๋.
- DB ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์๋ฒ๊ฐ ๊ฐ๋นํ ์ ์๋ ์๋๋ก ์กฐ์ ํฉ๋๋ค.
- ํ๋์ ๋ฉ์์ง ํ๋ก ๊ฐ๋ณ DB๋ฅผ ํตํฉํด์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค์์ ํ๋์ DB์ ์ฐ๊ฒฐ๋ฌ์ ๋ ํ๋๋ง ์ค์นํด๋ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ํ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์์ฒญ ์ ์ค์ ๋ง์ต๋๋ค. ํฐ์บฃ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ์์ผ๋ก ์ ์ค ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ๋ฉ์ธ์ง ํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์คํฌ์ ์ ์ฅํ ์ ์์ด DB์ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ๋ฉ์ธ์ง ํ ๋ด๋ถ์ ์ ์ฌํด๋๊ณ ์ ๋ฌํ์ง ์๋ ๋ฐฉ์์ผ๋ก ์ ์ค์ ๋ง์ ์ ์์ต๋๋ค.
- ๋๊ธฐํ๋ค๊ฐ ๋ค์ ์์ ์ ์งํํ ์ ์์ด ๋ฐ๋ก 400๋ฒ์ค๋ฅ๊ฐ ์๋ ๋ถ์์ ํ ์๋ฒ๋ฅผ ์ ์ ๊ธฐ๋ค๋ ค์ค
๋ํ์ ์ธ ๋ฉ์์ง ํ ์์คํ ์ผ๋ก๋ RabbitMQ, Apache Kafka, ActiveMQ, Redis ๋ฑ
์คํ๋ง๋ถํธ์์ RabbitMQ ๋ฉ์ธ์ง ํ ์ฌ์ฉ ์ฌ๋ก๋ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
[SpringBoot] - ์คํ๋ง๋ถํธ์์ RabbitMQ ๋ฉ์ธ์ง ํ๋ก ์ฌ์ฉ
์คํ๋ง๋ถํธ์์ RabbitMQ ๋ฉ์ธ์ง ํ๋ก ์ฌ์ฉ
RabbitMQ๋? Erlang์ผ๋ก ์์ฑ๋ RabbitMQ๋ก Erlang์ ๋จผ์ ์ค์นํด์ผ ํ๋ค. ๋์ปค์์ Eralng์ด ํฌํจ๋ ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ์์ด์ ๋์ปค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. RabbitMQ ํ๋๋ก ์ฌ๋ฌ
lbzllctct.tistory.com
ํ์ ํ ์์คํ ์ค์ ์ฌ์ฉ ์ฌ๋ก๋ ์์์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
'SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์นดํ์นด๋ฅผ ํ์ฉํ ๋ฉ์ธ์ง ํ (0) | 2024.04.02 |
---|---|
artillery ์คํธ๋ ์ค ํ ์คํธ (0) | 2024.02.29 |
์คํ๋ง ์ํ๋ฆฌํฐ 5.X์์ 6๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝ (0) | 2023.12.31 |
์คํ๋ง๋ถํธ์์ RabbitMQ ๋ฉ์ธ์ง ํ๋ก ์ฌ์ฉ (1) | 2023.12.17 |
ํ๋ก์ ํธ ์ค์ : DB ์ฐ๋ ๋ฐ ๋ฏผ๊ฐํ ์ ๋ณด ๋ง์คํน (0) | 2023.10.25 |