무정지 소비
무정지 소비 (Pauseless Consumption)
실시간 세그먼트 플러시(flush) 동안에도 소비를 멈추지 않고 이어가는 무정지 소비(pauseless consumption)를 안내해요.
출처: 문서
본문
개요 (Overview)
실시간 테이블에서 consuming 세그먼트가 가득 차서 플러시될 때, 기존 방식은 새 consuming 세그먼트가 열리기 전까지 소비를 일시정지해 잠깐의 소비 공백이 생겼어요. pauseless consumption은 세그먼트가 플러시되는 동안에도 소비를 계속 진행해 소비 가동률을 높이고 소비 래그가 누적되는 것을 줄여요.
동작 방식 (How it works)
pauseless consumption을 활성화하면 서버가 플러시되는 세그먼트와 병행해 다음 consuming 세그먼트를 미리 준비해, 플러시 시점에 소비가 중단되지 않도록 해요. 이를 통해 특히 높은 적재 속도(높은 메시지/초)를 처리하는 실시간 테이블에서 연속적인 소비를 보장할 수 있어요.
구성 (Configuration)
pauseless consumption은 테이블 구성의 streamConfigs 또는 관련 프로퍼티에서 활성화할 수 있어요. 관련 구성:
realtime.segment.pauselessConsumption.enabled=true
활성화 시 플러시 중 소비 중단을 최소화하기 위한 세그먼트 커밋 프로토콜과 메모리 설정을 함께 조정해야 할 수 있어요.
모범 사례 (Best practices)
- 메시지/초가 높아 플러시로 인한 소비 공백이 래그를 누적시키는 경우 유용해요.
- 실시간 서버의 메모리를 충분히 확보하세요. 플러시 중 추가 세그먼트 상태를 유지하므로 메모리 사용이 늘어날 수 있어요.
- 소비 래그와 플러시 동작을 함께 모니터링하세요.