
64
이벤트 기반 마이크로서비스 구축
에서 메시지는 큐 단위로만 처리되므로 여러 컨슈머가 같은 큐를 소비해도 각자 레코드의 하위
집합
subset
만 받을 수 있습니다. 따라서 각 컨슈머는 모든 이벤트의 전체 사본을 얻을 수가 없고
이벤트만 갖고서는 상태를 정확하게 통신할 수 없습니다. 이와 달리, 이벤트 브로커는 레코드
장부를 딱 하나만 보관하고 인덱스를 통해 개별 액세스를 관리하기 때문에 독립적인 여러 컨슈
머가 각자 필요한 이벤트를 마음대로 꺼내갈 수 있습니다. 또 메시지 브로커는
ACK
를 받고 이
벤트를 바로 삭제하지만 이벤트 브로커는 업무상 필요한 시간 동안 이벤트를 보존할 수 있습니
다. 메시지 브로커는 소비 직후 이벤트를 삭제하므로 모든 애플리케이션에 대해 무기한 보관되
고 전역 접근이 가능하면서 재연 가능한 단일 진실 공급원을 제공할 수 없습니다.
TIP
이벤트 브로커는 이벤트 순서가 보장되고 변경되지 않는 붙임 전용 사실 로그를 관리합니다. 따라서 컨슈머는
필요시 로그의 특정 위치부터 메시지를 소비해서 재처리할
reprocess
수 있습니다. 이벤트 기반 마이크로서비스
를 구축하는 데 반드시 필요한 기능이지만 메시지 브로커로는 그렇게 할 수가 없습니다.
물론 메시지 브로커가 사용하는 큐는 이벤트 기반 마이크로서비스에서도 중요한 역할을 합니
다. 큐는 ...