(Kafka) 카프카 스트림즈 아키텍처

카프카 스트림즈에 들어오는 데이터는 카프카 토픽 메시지이다.

스트림과 카프카 토픽의 관계는 다음과 같다.
  • 각 스트림 파티션은 카프카의 토픽 파티션에 저장된 정렬된 메시지이다.
  • 스트림 데이터 레코드는 카프카 해당 토픽의 메시지(키+값)이다.
  • 데이터 레코드의 키를 통해 다음 스트림(=카프카 토픽) 으로 전달된다.
카프카 스트림즈는 입력 스트림의 파티션 개수만큼 태스크를 생성한다.
각 태스크에는 입력 스트림(즉 카프카 토픽) 파티션들이 할당되고, 이것은 한번 정해지면 입력 토픽의 파티션에 변화가 생기지 않는 한 변하지 않는다.


각 입력스트림으로 부터 할당받은 태스크 파티션은  변화하지 않는다. 머신이 중지되더라도, 해당 태스크가 재시작해야한다. 

카프카 스트림즈는 사용자가 스레드의 개수를 지정할 수 있게 해주며, 1개의 스레드는 1개이상의 태스크를 처리할 수 있습니다.

다음 그림은 1개의 스레드에서 2개의 스트림 태스크가 수행되는 모습을 보여준다.



댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기