비동기 통신 전체 데모

날아올라돼지야·2024년 8월 31일
0

이번 강의에서는 RabbitMQ를 이용해 Accounts 마이크로서비스와 Message 마이크로서비스 간의 비동기 통신이 제대로 이루어지는지에 대한 전체 데모를 시연했습니다. 이 과정을 통해 두 마이크로서비스 간의 이벤트 스트리밍을 확인하였으며, 모든 비즈니스 흐름이 원활하게 작동하는지 테스트했습니다.

1. 환경 설정 및 애플리케이션 재시작

  • 애플리케이션 재시작: Accounts, Message, GatewayServer 애플리케이션을 모두 재시작해야 합니다.

    • 변경 사항이 많이 있었기 때문에 애플리케이션들을 다시 시작하여 모든 설정이 제대로 반영되도록 해야 합니다.
  • RabbitMQ 콘솔 확인: RabbitMQ 콘솔에서 send-communicationcommunication-sent라는 두 개의 새로운 교환(exchange)이 생성되었는지 확인합니다.

    • emailsms-out-0이라는 고아 교환(orphan exchange)은 이전에 잘못 생성된 것으로, 새로 RabbitMQ 컨테이너를 시작하면 보이지 않을 것입니다.
  • 새로운 큐 확인: communication-sent.accounts라는 새로운 큐가 생성되었는지 확인합니다. 이 큐는 Message 마이크로서비스에서 Accounts 마이크로서비스로 메시지를 전송할 때 사용됩니다.

2. 전체 흐름 테스트

  • Postman을 이용한 API 호출:

    • 엑세스 토큰 생성: 먼저 인증을 위한 엑세스 토큰을 생성합니다.
    • 새로운 계정 생성: 모바일 번호가 '687'로 끝나는 계정을 생성합니다.
    • 즉시 응답 확인: 1초 내에 성공적인 응답(HTTP 201)을 받습니다. 이는 Accounts 마이크로서비스가 RabbitMQ에 메시지를 전송했음을 의미합니다.
  • 비동기 메시지 처리 확인:

    • Message 마이크로서비스에서의 브레이크포인트: 브레이크포인트가 Message 마이크로서비스 내에 설정되어 있으며, 이로 인해 메시지가 아직 최종 처리되지 않았음을 알 수 있습니다.
    • H2 데이터베이스 확인: Accounts 마이크로서비스의 H2 콘솔에서 communication_switch 컬럼이 null로 설정된 것을 확인합니다.
  • 브레이크포인트 해제 후 데이터 확인:

    • 통신 완료 후 데이터베이스 업데이트: 브레이크포인트를 해제하면 Message 마이크로서비스가 메시지를 Accounts 마이크로서비스로 전송하고, 그 결과 communication_switch 컬럼이 true로 업데이트됩니다.

이 과정을 통해 모든 비즈니스 로직이 비동기적으로, 그리고 성공적으로 동작하는 것을 확인할 수 있었습니다.

3. 향후 작업

  • Docker 환경에서의 테스트 준비: Docker 이미지를 생성하고, Docker Hub에 푸시한 후, Docker Compose 파일을 업데이트합니다. 이를 통해 모든 컨테이너를 시작하고, 이 시나리오를 Docker 환경에서 종단 간으로 테스트할 수 있습니다.

요약

이번 강의에서는 AccountsMessage 마이크로서비스 간의 비동기 이벤트 스트리밍을 설정하고, 이를 통해 두 마이크로서비스 간의 원활한 통신이 이루어지는지 확인했습니다. RabbitMQ를 활용한 이벤트 스트리밍은 마이크로서비스 간의 시간적 결합을 줄이는 데 중요한 역할을 하며, 이를 통해 시스템의 유연성과 확장성을 크게 향상시킬 수 있습니다.

다음 강의에서는 Docker 환경에서 이 설정을 테스트하여 전체 마이크로서비스 네트워크가 잘 동작하는지 확인할 것입니다.

profile
무슨 생각하며 사니

0개의 댓글