현재 계정(accounts), 카드(cards), 대출(loans) 마이크로서비스 간의 통신은 동기식 통신을 기반으로 이루어지고 있습니다. 이러한 동기식 통신은 사용자에게 즉각적인 응답을 제공해야 하는 중요한 비즈니스 로직에서 필수적입니다. 예를 들어, 사용자가 계좌를 생성할 때, 계정 서비스는 계좌가 성공적으로 생성되었는지 즉시 알리고 응답해야 합니다. 그러나, 비즈니스 요구 사항에 따라 비동기 통신이 더 적합한 경우가 있으며, 이 경우 Pub/Sub 모델을 활용한 이벤트 기반 마이크로서비스를 구축할 수 있습니다.
이제 Pub/Sub 모델을 적용하여 비동기 통신을 사용하는 시나리오를 살펴보겠습니다. 이 시나리오에서는 새로운 계정을 생성하는 과정에서 비동기 통신을 도입합니다.
계좌 생성 요청:
이벤트 생성:
이벤트 큐에 전달:
메시지 서비스:
반대 방향의 비동기 흐름:
이와 같이, 계정 서비스와 메시지 서비스 간의 통신은 완전히 비동기적으로 이루어집니다. 메시지 서비스가 느리게 동작하거나 중단되더라도 계정 서비스에는 영향을 미치지 않습니다. 두 서비스는 서로의 구체적인 정보를 알 필요 없이 오직 이벤트 브로커와의 상호작용만을 통해 통신합니다.
이 섹션에서는 RabbitMQ를 사용하여 Pub/Sub 모델을 구현하고, 이를 통해 위에서 설명한 비동기 마이크로서비스 시나리오를 구축할 것입니다. RabbitMQ는 이벤트 브로커로 사용되며, 계정 서비스와 메시지 서비스 간의 이벤트를 중재하는 역할을 합니다.
이제 다음 강의에서 실제 구현을 시작하겠습니다.
감사합니다. 다음 강의에서 뵙겠습니다.