DevOps/AWS

[AWS] 마이크로서비스 간의 통신 방식 (Kafka, RabbitMQ)

세리둥절 2023. 4. 2. 14:38
반응형

마이크로서비스의 2가지 통신 방법

- 동기와 비동기
- 비동기 방법이 마이크로서비스 통신에 적합하다
- (비동기) 메시지 브로커를 중간에서 사용한다 > 핵심적인 가치인 "독립성"
- (비동기) RabbitMQ & Apache Kafka 

 

 

Asynchronous Messaging

- 메시지 브로커가 중재자 역할을 한다. 연결이 중간에 끊어졌다면 임시 메시지 저장소를 제공한다
- 마이크로서비스 별 독립성을 확보한다
- PM이 ㅋㅋㅋㅋ 비슷한 역할을 한다. 메시지 전달 집중하는 일을 하신다. CEO와 개별 팀은 독립성을 확보한다.

 

마이크로서비스의 간단한 아키텍처 예시

- Order와 Boss는 독립적인 프로젝트이다. 프레임워크가 다르다. (Django, Flask)
- Order와 Boss의 통신은 2가지 방식으로 이루어진다
1) Internal API : 동기
2) Rabbit MQ : 비동기
- 두개 서비스가 이용하는 DB가 다르기 때문에 DB간의 동기화가 필요하다. (Database Consistency)
- DB의 동기화도 RabbitMQ를 통해서 구현한다

반응형