개요
Kafka Stream Intro 영상 을 보고 개략적인 내용을 정리해둔다.
한줄요약
기존 kafka의 장점은 분산시스템의 메세지처리의 복잡한 문제를 해결해주는 것이었다. stream api는 분산된 계산(computation)에 있어 우리의 어플리케이션 내에 존재하여 scale out에 도움을 준다.
What is s Streams?
- stream을 연속적인 실시간 레코드의 flow라고 생각해보자.
- 우리는 명시적으로 새 레코드를 요청할 필요 없이 그냥 계속 받는거다.
- 레코드는 key-value 페어이다.
What is the kafka streams API?
- kafka stream api는 데이터를 transform하고 enrich한다.
- 레코드별 stream 처리를 milliseconds latency로 지원
- stateless 프로세싱, stateful 프로세싱, windowing 연산을 지원
- 표준 자바 어플리케이션 코드를 작성하고 실시간으로 마이크로서비스를 처리할 수 있음
- 분리된 프로세싱 클러스터가 필요하지 않음 (그냥 기존 어플리케이션 jar파일에 일부로 포함되는것만으로 가능함)
- mac, linux, windows 모두 개발이 가능
- elastic, highly scalable, fault-tolerant
- 클라우드화 하기 좋음(k8s와 합쳐지면 wonderful)
- 클러스터가 크건 작건 잘 동작함
- kafka security와 통합되어 있음
- 0.11.0부터 exactly-one semantics를 지원함
- kafka stream은 apache kafka 프로젝트의 일부임
Using the kafka streams API
- 카프카 스트림 API를 java or scala 어플리케이션 안에서 호출가능함
- kafka streams api는 카프카 클러스터랑 통신함
- 어플리케이션 kafka brokers 위에서 실행되지 않음