Development
카프카 구성 요소
Prower
2024. 4. 19. 22:02
728x90
반응형
전체 구조
- 거대한 양의 데이터 처리가 가능한 분산 스트리밍 플랫폼
- 높은 스루풋, 확장성, 장애 내성 제공
- 데이터를 실시간으로 처리, 저장 하도록 하는 플랫폼
- 저장소가 아니다. 메세지 플랫폼
- producer(sender, publisher): 메세지를 카프카에 기록하는 역할
- consumer(receiver, subscriber): 카프카로부터 메세지를 소비하는 역할
- broker: 데이터 저장, 관리, 중개 역할
이벤트
- kafka에서 데이터로 취급 되는 것
- event = record = message
- kafka에 기록되는 모든 데이터는 다음의 메세지 형식을 따른다
- key
- value
- timestamp
- (optional) metadata header
- 이벤트는 소비되지 않는다. 읽음 행위로 인해 삭제되지 않음
- 토픽당 이벤트를 어느 기간 만큼, 유지할건지 설정 가능
- 토픽에 데이터가 기록되면 토픽의 파티션중 하나에 이벤트가 이어 붙여짐
- 한 이벤트와 동일한 이벤트 키를 가진 이벤트는 같은 파티션에 기록됨
- 카프카는 모든 consumer가 해당 파티션의 기록된 순서대로 읽는 것을 보장함
토픽
- 연관된 이벤트가 저장된 집합
- 파일 시스템의 폴더와 유사한 역할
파티션
- 토픽은 분산되어 있다
- 분산? 토픽이 다른 카프카 브로커에 퍼져있다는 의미
- scalability를 유지하는데 핵심적인 컨셉
- 토픽의 데이터가 브로커에 퍼져있기 때문에 다수의 클라이언트가 다수의 브로커에 동시에 읽기/쓰기가 가능
- 각 파티션은 순서가있는 레코드들의 집합
Producer
- sender, publisher
- 카프카의 토픽에 데이터를 기록하는 역할
- 동기, 비동기 방식으로 append-only로 데이터를 기록한다
Consumer
- 카프카에 기록된 데이터를 읽는 역할
- 카프카의 토픽을 구독(publish) 하고 있다가, 해당 토픽의 데이터를 받는다.
- 데이터는 스트리밍 방식으로 읽어 처리한다.
producer와 consumer는 서로 의존하지 않는다. 즉, producer, consumer가 하는 일이 서로에 엮여 있지 않음
Broker
- producer와 consumer 사이에서 데이터를 저장, 관리하는 중개 역할
- 카프카 클러스터는 다수의 broker로 구성되어 있다
- 카프카의 장애 내성, 데이터 복제, 고가용성 제공
Offset
- 각 파티션의 레코드에 부여된 유일한 식별자
- 카프카 토픽에서 해당 레코드의 위치를 표현
- offset은 consumer에 장애가 발생한 경우 데이터를 이어서 읽을 수 있도록 포인트 역할
Replication
- 카프카는 고가용성을 위해 토픽의 파티션을 다수의 broker에 복제한다
- 하나의 borker가 다운되더라도 해당 broker의 복제본을 갖고 있는 broker에서 역할 수행 가능
https://kafka.apache.org/intro
728x90
반응형