JAVA/프로젝트

배달 플랫폼 백엔드 : rabbitmq

whyHbr 2024. 6. 14. 11:28
728x90
반응형

RabbitMQ
- 메시지를 생성하는 프로듀서(= api server), 이를 큐에 저장하는 rabbitmq, 이 메세지를 읽어 소비하는 컨슈머(=가맹점 서버)
- 비동기 방식

 

api server 가 퍼블리셔 역할이다. 

api 서비스에서 사용자가 주문을 하게 되면 (이벤트 발생 메세지 생성)

api 서버가 q에 바로 메세지 넣는게 아니라,

rabbitmq 는 exhange라는 곳에 메세지를 넣는다 - 이 메세지를 어디로 라우팅 시킬지 결정 하는 곳이 exchange, 컨트롤러 같은 역할.

exchange는 어떤 메세지인지 구분해 특정한 q에 그 메세지를 넣어준다. 

 

가맹점 서버가 컨슈머 역할을 한다.

가맹점 서버가 q에 있는 데이터를 가져오고 처리한다. 

컨슈머는 데이터를 넣을 수도 있고 꺼낼 수도 있다. 양방향 가능하다. 설정하기 나름.

 

api서버는 메세지를 exchange에 넣는다 - exchange는 특정 q에 라우팅을 한다. - q에 메세지를 넣는다. - 가맹점 서버가 가져간다. 

728x90