발행/구독 메시지 전달

습관 들이기·2023년 5월 19일

메시지 발행과 구독하기

  • 메시지 발행/구독 시스템은 메시지를 발행자가 구독자에게 직접 보내지 않는다.
  • 발행자가 메시지를 발행/구독 시스템에 전송하면 시스템은 구독자가 특정 부류의 메시지를 구독할 수 있게 해준다.
  • 발행된 메시지를 저장하고 중계하는 역할을 브로커가 수행한다.

초기의 발행/구독 시스템


초기 시스템은 그림과 같이 서버를 구축한 후에 서버에 필요한 데이터를 직접 전달하는 방식을 택하였다.

시스템은 점점 커지고 지표뿐만 아니라 다양한 데이터들을 보고 싶다는 니즈에 맞춰 아래와 같이 변경되었다.

시스템에 요구 사항이 추가될 수록 아키텍처는 점점 더 복잡해진다.
이러한 구조에 대한 개선의 필요가 있었고 중간에 발행/구독 서버를 추가하였다.

발행/구독 서버는 데이터를 제공하고 제공 받는 중간 다리 역할을 하며, 이것이 메시지 발행/구독 시스템이다.

지표 데이터 이외에 로그 데이터에 대해서도 비슷한 요구사항이 들어왔다.
아래 그림은 요구사항에 맞는 발행/구독 시스템을 추가한 것이다.

뭔가 처음 생겼던 문제로 돌아간 거 같다.
다른 요구사항이 계속 생길 수록 발행/구독 서버는 추가될 것이고 그에 따른 복잡도는 계속해서 증가할 것이다.
또한, 버그도 한계도 제각각인 다수의 데이터 큐 시스템을 관리해야 한다.

profile
오늘보다 나은 내일을 위해 .. !

0개의 댓글