티스토리 뷰
메시지 큐 ( MQ : Message Queue )
메시지 큐란?
MOM(Message Oriented Middleware)은 프로세스 혹은 인스턴스 사이에 비동기 통신 방법이다. 이를 구현한 시스템을 메시지 큐(Message Queue) 라고 한다. 이 때, 메시지는 요청, 응답, 오류 메시지등을 의미한다.
MQ의 특징
- MSA(Micro Service Architecture)에서 서비스 ↔ 서비스 간 비동기 통신
- 메시지를 큐(Queue)에 임시 저장하고, 해당 메시지가 소비자(Consumer)에 의해 처리 된 후 삭제된다.
- 큐는 메시지를 임시 저장하는 버퍼라고 할 수 있고, 메시지 큐는 메시지 생산자(Producer)와 소비자(Consumer)간의 일대일 통신 방법이다.
- 메시지가 큐에 저장된 메시지의 처리 시점을 보장하지는 않는다.
- 요청이 왔을 때 핵심적인 작업은 우선적으로 처리하고, 처리를 유예할 수 있는 작업은 메시지 큐에 저장해두고 소비자가 처리할 수 있을 때 꺼내서 처리하도록 하여 동시처리 성능을 증가시킨다.
MQ의 장점
- 비동기 ( Asynchronous )
- 동시에 너무 많은 메시지를 처리하게 되면 병목현상이 발생할 수 있다. 이 때 MQ를 사용하면 큐(Queue)에 다 수의 메시지를 저장하고 나중에 처리하는 비동기 방식을 통해 병목 현상을 해결할 수 있다.
- 예를 들어, 특정 시간에 모든 유저에게 PUSH를 보내게 되면, 그 작업 외의 작업을 처리하기는 힘들어진다. 이를 큐에 임시 저장 해두고 비동기적으로 처리하면 더 많은 요청을 동시처리 할 수 있게 한다.
- 낮은 결합도 ( Decoupling )
- 생산자 서비스와 소비자 서비스가 서로 독립적으로 작업하게 한다.
- 탄력성 ( Resilience )
- 메시지 큐에 메시지가 저장되어 있어 서비스의 문제가 있어 중단되더라도 재 시작할 수 있고, 일부가 실패 하더라도 전체에 영향을 주지 않는다.
- 보증 ( Gurarantees )
- 메시지 큐에 저장된 모든 메시지가 소비자에게 전달 될 것을 보장하여 작업이 처리될 것을 보증한다.
- 확장성 ( Scalable )
- 다 수의 프로세스가 큐에 메시지를 보낼 수 있어 확장이 가능하다.
더보기
참조
[오픈소스] 메시지큐(Message Queue) 알아보기
메시지 큐 개념을 다시 잡아보고자 학습용도로 작성한 포스팅입니다. 출처는 http://zzong.net/post/3 입니다. 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용
12bme.tistory.com
메시지 큐에 대해 알아보자!
메시지 큐란 메시지 큐(Message Queue)는 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나로, 메시지 지향 미들웨어(Message Oriented Middleware:MOM…
tecoble.techcourse.co.kr
'Infrastructure' 카테고리의 다른 글
[OS] 뮤텍스(Mutex) 와 세마포어(Semaphore) (0) | 2022.09.21 |
---|---|
[Spring Cloud]Hystrix 를 활용한 Circuit breaker & Fallback 구현 (0) | 2022.09.04 |
SPOF(Single Point of Failure) (0) | 2022.08.17 |
RPC(Remote Procedure Call)가 뭐에요? (0) | 2022.08.11 |
암호화(Encryption) 와 해싱(Hashing)의 차이 (0) | 2022.08.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 외부 단편화
- Memory Fragmentation
- Clean Architecture
- Object Pool
- ATDD
- pass by value
- Sticky Session
- 동적 디스패치
- 수평 분할
- multimap
- pool
- 동적 타입 언어
- 내부 단편화
- 클린 아키텍처
- 뾰족함
- RestAssured
- pass by reference
- SpringBoot 2.2
- 육각형 아키텍처
- 메모리 단편화
- 수직 분할
- OOP
- 객체 풀
- 정적 타입 언어
- Session
- 세션 불일치
- 메모리 파편화
- 장애 해결기
- 컴포짓 패턴
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함