메시징 시스템

보통 로그 데이터, 이벤트 메시지 등을 API로 호출할 때 보내는 데이터들을 처리하는 시스템

image.png

<자동 메일 발송 시스템>

MemberService에서 회원가입 후 , OrderService에서 주문 완료 이벤트가 발생하면

Messaging Client로 메일 전송에 필요한 데이터를 API로 호출

Messaging Client에서 MOM을 구현한 Kafka로 메세지 생산

MailService에서 메시지가 존재하는지 구독하고있다가 메시지가 존재하면 메시지 소비

MailService에서 API 정보들을 통해 User에게 메일 전송

이런 메시징 시스템들은 Publish/Subscribe 형태의 통신을 하며 메시지를 보내고 받는다.

image.png

  1. publisher는 consumer의 정보를 알 필요가 없다. 서로의 변경의 영향을 받지 않게된다.
  2. publisher는 단순하게 발행/구독 시스템에 전송하면 consumer는 이 메시지를 읽어가기만 하면 된다.
  3. 서버가 추가되어도 서로에게 영향을 끼치지 않기 때문에 새로운 서버를 추가하거나 기존 서버를 변경하는데 수월해지고, 수평적인 확장이 가능해진다.

Kafka

Broker: 카프카 서버

Topic: 메시지를 담는 이름 있는 로그 → 프로듀서와 컨슈머들이 카프카로 보낸 자신들의 메시지를 구분하기 위한 네임으로 사용