티스토리 뷰
1장은 카프카에 대한 소개이므로 생략.
2장 카프카 스트림즈 시작하기
- 카프카 스트림즈 주요특징
아파치 플링크, 스파크 같은 기술과 다르게, 제출/실행용 클러스터가 필요 없음.
카프카스트림즈는 마이크로 배치형태로 여러 이벤트를 가져오는게 아닌, 한번에 한 이벤트 방식으로 구현. ( 여러개의 메시지를 한번에 가져오는 컨슈머에 붙어있다고 해도, 스트림즈는 하나씩만 처리한다 )
- 카프카 스트림즈 구성 요소 ( 토폴로지 )
1. 소스 프로세서
- 스트림할, 소스데이터를 넣을 수 있는 곳.
2.스트림 프로세서
- 데이터를 처리/변환 하는곳.
3. 싱크프로세서
- 처리 후, 다시 카프카 메시지를 생상하는 곳.
- 상태가 없는 처리 vs 상태가 있는 처리
=> 데이터를 스트림하면서, 이전 단계의 데이터를 기억해서 다시 불러와야 한다? => 상태가 있는처리 ( window, aggregate, ... )
=> 상태가 있는 처리에서는, 집계한 중간 데이터를 내부토픽에 저장해놓고 사용한다.
- aggregate 등으로 중간 집계 결과를 저장하는건 Materilized클래스를 사용하여, RocksDB의 (k,v) 형태로 인메모리/디스크 에 저장할 수 있음.