1. Kafka 구조
- broker 외부에서 메시지가 생성되고, broker 외부로 읽어짐.
- 메시지 파이프라인 구성은 producer와 consumer를 직접 개발하거나, kafka connect를 사용해서 source -> sink 형태로 구성할 수 있음.
- kafka 내부에서 메시지 파이프라인을 구축할 때, 즉 내부 토픽을 이요해서 파이프라인을 구축할 때 kafka streams가 사용된다.
2. Kafka Streams
- Streams API 라이브러리.
- 프레임워크에 종속되지 않고, 라이브러리 의존성을 추가하여 몇 가지 설정만 하면 자동으로 파이프라인이 구성됨.
- 이를 통해 카프카 내부 파이프라인을 더욱 쉽게 구성할 수 있음.
- streams는 내부적으로 consumer API를 사용함.
- 따라서 효과적이고 안정적인 파이프라인 구성 가능.
stream은 broker의 특정 topic을 sub하여, 일련의 로직(전처리 등)을 처리한 뒤, 다른 토픽으로 pub함.
3. Kafka Streams 기능
- 토픽 내부 민감 데이터 마스킹
- 다양한 Source로부터 수집된 메시지 규격화
- 5분 간격으로 토픽 내부의 특정 이벤트 감지
- 특정 필드를 이용한 파이프라인 조인
- 위와 같은 기능을 구현할 수 있도록 Streams API는 filter(), map(), groupBy() 등의 다양한 처리, 집계 함수를 제공함.
- 메시지 key, 시간 간격 등으로 집계할 수 있으며, 집계 상태 정보를 저장하는 상태 저장소가 사용됨.
출처
https://always-kimkim.tistory.com/entry/kafka101-streams