더북(TheBook)

브로커 기반 메시징의 장단점

브로커 기반의 메시징은 여러모로 장점이 많습니다.

느슨한 결합: 클라이언트는 적절한 채널에 그냥 메시지를 보내는 식으로 요청합니다. 클라이언트는 서비스 인스턴스를 몰라도 되므로 서비스 인스턴스 위치를 알려 주는 디스커버리 메커니즘도 필요 없습니다.

메시지 버퍼링: 메시지 브로커는 처리 가능한 시점까지 메시지를 버퍼링합니다. HTTP 같은 동기 요청/응답 프로토콜을 쓰면 교환이 일어나는 동안 클라이언트/서비스 양쪽 모두 가동 중이어야 하지만 메시징을 쓰면 컨슈머가 처리할 수 있을 때까지 그냥 큐에 메시지가 쌓입니다. 덕분에 온라인 상점에서 주문 이행 시스템이 느려지거나 불능 상태에 빠지는 사고가 발생해도 컨슈머는 주문을 계속 접수할 수 있습니다. 그냥 언젠가는 처리되겠거니 간주하고 메시지를 차곡차곡 쌓아 두는 것입니다.

유연한 통신: 메시징은 지금까지 설명한 모든 상호 작용 스타일을 지원합니다.

명시적 IPC: RPC 메커니즘은 원격 서비스가 마치 자신이 로컬 서비스인 양 호출을 시도합니다. 하지만 물리 법칙상으로도 그렇고 부분 실패할 가능성이 있기 때문에 사실 서비스와는 완전히 다릅니다.

 

메시징의 단점은 다음과 같습니다.

성능 병목 가능성: 메시지 브로커가 성능 병목점이 될 위험이 있습니다. 하지만 다행히 요즘 메시지 브로커는 대부분 확장이 잘 되도록 설계되었습니다.

단일 장애점 가능성: 메시지 브로커는 가용성이 높아야 합니다. 그렇지 않으면 시스템의 신뢰성에 흠이 갈 수 있겠죠. 다행히 요즘 브로커는 대부분 고가용성이 보장되도록 설계되었습니다.

운영 복잡도 부가: 메시징 시스템 역시 설치, 구성, 운영해야 할 시스템 컴포넌트입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.