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

 

์ฐธ๊ณ ) https://programming-and-dt.tistory.com/entry/%EB%A9%94%EC%8B%9C%EC%A7%80-%ED%81%90-%EC%A2%85%EB%A5%98Message-Queue-MQ

 

๋ฉ”์‹œ์ง€ ํ ์ข…๋ฅ˜(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

 

+ Recent posts