왜 State Backend가 중요할까?
Flink의 핵심은 “상태(state)를 가진 스트림 처리”임.
여기서 상태를 어디에 저장하느냐가 성능, 안정성, 지연, checkpoint 시간 모두를 결정함.
즉,
- state backend를 어떻게 선택하느냐
- checkpoint를 어떻게 조정하느냐
- 재시작 전략을 어떻게 구성하느냐
이 모든 것이 운영 품질(안정성)과 성능(레이지/처리량)을 좌우함.
State Backend의 역할
State Backend는 크게 두 가지를 담당함:
- *상태(state)**를 어디에 저장할 것인가? (메모리 / RocksDB / Changelog 등)
- checkpoint/savepoint를 어떤 방식으로 저장·복구할 것인가?
Flink 앱이 다운돼도
- “어제까지의 집계 값”
- “유저별 최근 주문 상태”
- “Window state”
를 그대로 복구할 수 있는 이유가 바로 backend 때문임.
어떤 Backend가 있는지?
현재 Flink에서 핵심적으로 쓰는 백엔드는 아래 3가지 구조임.