요한's.log
로그인
요한's.log
로그인
[MSA] 마이크로서비스 간의 통신 방식
Yohan_05
·
2023년 5월 28일
팔로우
0
kafka
msa
rabbitmq
마이크로서비스
방식
통신
0
MSA
목록 보기
2/4
마이크로 서비스 통신 패턴
Synchronous Solution
동기적
REST API
서비스 A에서 서비스 B로 직접 요청을 보내고 동기적으로 응답을 기다림
Asynchronous Messaging
비동기적
메시지 브로커를 사용하여 서비스 A에서 서비스 B로 메시지를 보냄
서비스 A는 응답을 기다리지 않음.
서비스 B는 일반적으로 동일한 메시징 시스템을 통해 결과를 사용할 수 있을 때 (결과가 예상되는 경우) 결과를 보냄
RabbitMQ와 Apache kafka
Synchronous Solution의 문제점?
A가 연결을 시도할 때 B가 오프라인 상태일 수도 있음.
그런 경우 어딘가에 요청을 저장하고 나중에 다시 시도해야하는가?
언제, 얼마나 자주 다시 시도해야함?
A가 응답을 기다리는 동안 시간이 오래 걸리거나 실패할 수 있음.
B가 데이터 처리를 완료했지만 A가 오프라인 상태인 경우 어떻게 처리해야함
등등 고려할 사항들이 너무 많다.
Asynchronous Messaging 에 대해 알아보자.
A(Producer)에서 B(Consumer)로 메시지를 전달하고 B에서 A로 메세지를 전달할 때 중개자 역할을 하는 "메시지 브로커" 가 있음.
메시지 브로커는 Producer에서 메시지를 수신하여 Consumer에게 메시지를 전달하여 작업을 수행
메시지 브로커는 Consumer의 연결이 끊어졌을 때 임시 메시지 저장소를 제공
마이크로 서비스 별로의 독립성을 확보
Yohan_05
안녕하세요 DevOps 엔지니어로 현업에서 활동중인 요한이라고 합니다.
팔로우
이전 포스트
[MSA] 마이크로 서비스의 장단점
다음 포스트
[MSA] 마이크로서비스 아키텍처 개발 시 고려해야하는 사항들
0개의 댓글
댓글 작성