1.๋ฉ์ธ์ง ํ(Message Queue)
- ๋ฉ์ธ์ง ์งํฅ ๋ฏธ๋ค์จ์ด(MOM)๋ฅผ ๊ตฌํํ ์์คํ ์ผ๋ก ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค) ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ํต์ ํ๋ ๋ฐฉ๋ฒ
- ๋ฉ์์ง๋ฅผ ํตํด ๋ถ์ฐ๋์ด ์๋ ์์คํ
๊ฐ Connector ์ญํ ์ ํ์ฌ ๊ฒฐํฉ์ฑ์ ๋ฎ์ถ๊ณ ์ค์๊ฐ ๋น๋๊ธฐ์ ๋ฐ์ดํฐ ๊ตํ
→ Producer : ๋ฉ์ธ์ง๋ฅผ Queue์ ์ ์กํ๋ ๊ณณ
→ Consumer : Queue์ ๋ฉ์ธ์ง๋ฅผ ๊บผ๋ด ์ฒ๋ฆฌํ๋ ๊ณณ
→ Consuming : ๋ฉ์ธ์ง๋ฅผ Queue์์ ๊บผ๋ด๋ ๊ฒ
1-1. ๋ฉ์ธ์ง ์งํฅ ๋ฏธ๋ค์จ์ด(Message Oriented Middleware)
- ์์ฉ ์ํํธ์จ์ด ๊ฐ์ ๋ฐ์ดํฐ(๋น๋๊ธฐ ๋ฉ์ธ์ง) ํต์ ์ ์ํ ์ํํธ์จ์ด
- ์ฅ์ : ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๊ณผ์ ์์ ๋ณด๊ด / ๋ผ์ฐํ / ๋ณํํ ์ ์๋ค.
- ๋จ์
→ ์์คํ ์ฑ๋ฅ ๋ฐ ์ ๋ขฐ์ฑ ์ ํ
→ ๊ด๋ฆฌ๊ฐ ์ด๋ ต๊ณ , ๋น์ฉ ๋ฐ์
→ ๋งค์ปค๋์ฆ ๋ถ์ผ์น(์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ํต์ : ๋๊ธฐ / ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ : ๋น๋๊ธฐ)
1-2. ํ(Queue)
- ์ ์ ์ ์ถ๋ฐฉ์(First In First Out)์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋ฃ๊ตฌ์กฐ
2. ๋ฉ์ธ์งํ ์ฌ์ฉ์ ์ฅ์
- ๋น๋๊ธฐ(Asynchronous): Queue์ ๋ฃ๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅ.
- ๋น๋์กฐ(Decoupling): Application๊ณผ ๋ถ๋ฆฌํ ์ ์๋ค.
- ํ์ฅ์ฑ(Scalable): ์ฌ๋ฌ๊ฐ์ ์๋น์ค๋ค์ด ํ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค.
- ํ๋ ฅ์ฑ(Resilience): ์ผ๋ถ์ ์คํจ๊ฐ ์ ์ฒด์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
- ๊ณผ์(Redundancy): ์คํจ์ ์ฌ์คํ์ด ๊ฐ๋ฅํ๋ค.
- ๋ณด์ฆ(Guarantees) : ์์ ์ด ์ฒ๋ฆฌ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
3. ์ฌ์ฉ์ฒ
- ๋ค๋ฅธ ๊ณณ์ API๋ก๋ถํฐ ๋ฐ์ดํฐ ์ก์์
- ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋น๋๊ธฐ ํต์
- ์ด๋ฉ์ผ ๋ฐ์ก ๋ฐ ๋ฌธ์ ์
๋ก๋
- ๋์ฉ๋ ํ๋ก์ธ์ค๋ค์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฐฐ์น์์
- ์ฑํ
์๋น์ค
4. ์ข ๋ฅ
- Kafka, RabbitMQ, ActiveMQ ๊ฐ ๋ํ์ . Amazon SQS, Amazon MQ ๋ฑ์ด ์๋ค.
→ Kafka : ์ฒ๋ฆฌ๋์ด ๋ง์ ๋ถ์ฐ ๋ฉ์์ง ์์คํ ์ ์ ํฉ
→ RabbitMQ, ActiveMQ : ์ ๋ขฐ์ฑ์๋ ๋ฉ์์ง ๋ธ๋ก์ปค๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ํฉ
4-1. Apache Kafka
- ๋์ ์ฒ๋ฆฌ๋์ ์๊ตฌํ๋ ์ค์๊ฐ ๋ฐ์ดํฐ ํผ๋์ฒ๋ฆฌ, ๋๊ธฐ์๊ฐ์ด ์งง์ ํ๋ซํผ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํจ
- TCP ๊ธฐ๋ฐ ํ๋กํ ์ฝ ์ฌ์ฉ
4-2. RabbitMQ
- AMOT ํ๋กํ ์ฝ์ ๊ตฌํํด๋์ ํ๋ก๊ทธ๋จ
- ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ตฌ์ฑ๊ฐ๋ฅ, ์ง๊ด์
4-3. ActiveMQ
- ์๋ฐ๋ก ๋ง๋ ์คํ์์ค ๋ฉ์ธ์ง ๋ธ๋ก์ปค
- ๋ค์ํ ์ธ์ด์ ํ๋กํ ์ฝ ์ง์
์ฐธ๊ณ ) https://sorjfkrh5078.tistory.com/291
๋ฉ์์ง ํ(Message Queue)๋?
์ต๊ทผ ๋ฐฑ์๋ ์ง๋ฌด๋ฅผ ์ง์ํ๋ค ๋ณด๋ฉด ์๊ฒฉ ์๊ฑด์ด๋ ์ฐ๋์ฌํญ์ ๋ฉ์์ง ํ(Message Queue)๋ผ๋ ์ญ๋์ด ์ ํ์๋ ๊ฒ์ ์์ฃผ ๋ณผ ์ ์๋ค. ๋ฉ์์ง ํ, ๋ง ๊ทธ๋๋ก ๋ฉ์์ง๋ค์ ํ๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ๋ด์์ ๊ด
sorjfkrh5078.tistory.com
์ฐธ๊ณ ) https://steady-snail.tistory.com/165
๋ฉ์์ง ํ(Message Queue / MQ)
๋ฉ์์ง ํ(Message Queue ์ดํ MQ)๋ ํ๋ก์ธ์ค(ํ๋ก๊ทธ๋จ) ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ์ฌ์ฉํ๋ ํต์ ๋ฐฉ๋ฒ ์ค์ ํ๋๋ก ๋ ํฐ ๊ฐ๋ ์ผ๋ก๋ MOM(Message Oriented Middleware : ๋ฉ์์ง ์งํฅ ๋ฏธ๋ค์จ์ด ์ดํ MOM)๋ฅผ ์๋ฏธ
steady-snail.tistory.com
๋ฉ์์ง ํ ์ข ๋ฅ(Message Queue / MQ)
๋ฉ์์ง ํ(Message Queue ์ดํ MQ)๋ ํ๋ก์ธ์ค(ํ๋ก๊ทธ๋จ) ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ์ฌ์ฉํ๋ ํต์ ๋ฐฉ๋ฒ ์ค์ ํ๋๋ก ๋ ํฐ ๊ฐ๋ ์ผ๋ก๋ MOM(Message Oriented Middleware : ๋ฉ์์ง ์งํฅ ๋ฏธ๋ค์จ์ด ์ดํ MOM)๋ฅผ ์๋ฏธ
programming-and-dt.tistory.com
์ฐธ๊ณ ) https://pamyferret.tistory.com/38
Message Queue๋? (AMQP์ ๊ธฐ๋ฐํ ๊ธฐ๋ณธ ๋์ ๋ฐฉ์ ๋ฐ ์ฉ์ด)
ํ์ฌ๋ฅผ ์ด์งํ๊ณ ๋๋๊น ๋ง์ ์ฌ์ฉ์๋ฅผ ๊ณ ๋ คํด์ Message Queue์ ๋ฉ์์ง๋ฅผ ๋ฃ๊ณ ์ปจ์๋ฐํด์ ์ฌ๋ฌ ๋ชจ๋๋ก ๋๋ ์ ์๋น์คํ๊ณ ์์๋ค. (์ ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํด์๋ผ๊ณ ์์ฑํ์ง๋ง ๋น๋๊ธฐ๋ ๋น๋๊ธฐ
pamyferret.tistory.com
'CS > ๊ฐ๋ฐ์์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ฐ๋ฐ์์] #10. ๋์ปค์ ์ฟ ๋ฒ๋คํฐ์ค (0) | 2023.01.12 |
---|---|
[๊ฐ๋ฐ์์] #8. ํ๋ ์์ํฌ vs ๋ผ์ด๋ธ๋ฌ๋ฆฌ (0) | 2023.01.12 |
[๊ฐ๋ฐ์์] #7. ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (0) | 2023.01.12 |
[๊ฐ๋ฐ์์] #6. ํด๋ฆฐ์ฝ๋ (0) | 2023.01.12 |
[๊ฐ๋ฐ์์] #5. ์ ์ฐจ์งํฅ vs ๊ฐ์ฒด์งํฅ (0) | 2023.01.11 |