212
클라우드 네이티브 애플리케이션 디자인 패턴
호 정보가 담긴 이벤트를 생성했다고 생각해봅시다. 애플리케이션은 해당 이벤트의 정보에 기
반하여 데이터베이스를 업데이트할 것인데, 이 이벤트를 여러 번 처리한다고 해도 결국 데이터
베이스에는 같은 전화번호가 저장될 것입니다. 이벤트를 중복 처리해도 아무런 문제가 생기지
않는 것이죠.
사용자 트랜잭션 정보와 같은 중요한 비즈니스 정보는 이벤트를 최소 한 번 전달하고 딱 한 번
만 처리하도록 합니다. 간단한 알림 정보나 주기적인 업데이트와 같이 손실되어도 크게 지장이
없는 이벤트는 최대 한 번 전달로도 충분합니다. 더 높은 수준의 전달 보장은 더 높은 성능이나
복잡도를 요구하기 때문에 반드시 보장해야 하는 최저 수준을 선택하는 것이 좋습니다.
5.1.25.1.2
메시지 브로커 유형 메시지 브로커 유형
메시지 브로커는 크게 두 개의 유형으로 나눌 수 있습니다.
표준 메시지 브로커
표준 메시지 브로커는 이벤트를 데이터 스토어에 저장해서 필요로 하는 소비자에게 이벤
트를 제공합니다. 이벤트를 소비자에게 전달하면 이벤트를 삭제합니다. 아파치 액티브
MQ
ActiveMQ
와 래빗
MQ
RabbitMQ
가 이런 브로커 유형에 속합니다.
로그 기반 메시지 브로커
이벤트들을 커밋 로그에 저장하는 메시지 브로커들입니다. 이벤트는 이벤트를 소비한 후에
도 계속 보관됩니다. 따라서 소비자들은 특정 시점 이후의 이벤트들을 재생할 수 있습니다.
아파치 카프카나
NATS
가 이런 유형에 속합니다.
유형과 관계 없이 서로 다른 메시지