327
6
장
스트림 프로세싱 패턴
를
API
를 제공하거나 메시지 브로커를 안전하게 만들고 이벤트를 소비하도록 만드는 것이 좋
습니다. 아울러 전체 스트림 프로세싱 시스템을 정의한 바운디드 컨텍스트 내에 포함시키도록
합니다. 그리고
2
장과
5
장에서 설명한 일반적인 보안 정책을 함께 취하는 것이 좋습니다.
6.9
관측 가능성 및 모니터링
관측 가능성과 모니터링은 스트림 프로세싱 애플리케이션 운영에서 중요한 요소 중 하나입니
다. 상태를 가지며 비동기로 동작한다는 특성 때문에 적절한 모니터링이 없으면 시스템 장애가
발생할 때까지 문제를 발견할 수 없는 경우가 많습니다.
스트림 프로세싱 애플리케이션이 상태를 가지고 있기 때문에, 메모리 소비 정도를 반드시 모니
터링 하도록 합니다. 시스템이
5
분 크기 윈도우를 가지고 애그리게이션 작업을 처리하는 것과
같이 시간 제한을 가지는 질의를 처리하는 경우를 생각해봅시다. 이벤트가 갑자기 대량으로 발
생해서 시스템이 이벤트를 메모리에 많이 저장하는 경우 시스템 전체 메모리가 부족한 현상이
발생할 수 있으며 결국 장애가 생길 수 있습니다. 하지만 모니터링과 부하 차단
load
shedding
등의
기술을 사용해서 이런 상황이 발생하지 않도록 막을 수 있습니다. 물론 이벤트가 계속 다량으
로 발생한다면 이벤트 스트림을 나누거나 스트림 프로세싱 파이프라인을 재설계해서 더 많은
부하를 처리할 수 있도록 만들어야 합니다.
상태를 가지는 스트림 프로세싱 시스템은 주기적 상태 스냅숏 저장 패턴을 사용해서 장애가 발
생한 경우 ...