JUST WRITE

Kafka Architecture 본문

MLOps/Kafka

Kafka Architecture

천재보단범재 2022. 8. 14. 19:16

Kafka Architecture

Kafka는 아래와 같은 구성 요소를 가진다.

  • Records
  • Topics
  • Consumers
  • Producers
  • Brokers
  • Logs
  • Partitions
  • Clusters

Kafka가 어떻게 동작하는지와 구성요소들이 어떤 역할을 하는지 대략적으로 정리해보려 한다.

Topics, Producers, Consumers

Kafka의 주요한 역할은 Data를 받아서 전달하는 역할이다.

그 역할을 Topics, Producers, Consumers에서 한다.

  • Producer -> publish 하는 Topic에 Data를 전달
  • Topic -> Log라는 구조로 디스크에 Data를 저장
  • Consumer -> Topic에 쌓인 Data를 읽어서 처리

출처 : http://cloudurable.com/blog/kafka-architecture/index.html

Topic Partition, Consumer Group

Topic에 저장되는 Log는 Partition과 Segment에 나눠서 저장된다.

분산되어 Data가 저장되기 때문에 Write, Read 역시 빠르게 처리될 수 있다.

분산된 Data를 한번에 처리하려면 다수의 Consumer가 필요하며 Kafka에서는 Group을 형성할 수 있다.

Consumer Group을 형성하면 Topic에 대해서 동시에 처리할 수 있다.

다른 Consumer Group과는 같은 Topic 처리에 대해서 offset을 통해 구분할 수 있다.

출처 : http://cloudurable.com/blog/kafka-architecture/index.html

Kafka Cluster

Kafka는 failover를 위해 replication을 둔다.

Broker라는 Kafka Server를 여러 개를 설치하여 하나의 Cluster로 구성한다.

Data가 저장되는 Topic의 Partition을 각 Broker에 복제한다.

Broker에 장애가 생겨도 replication이 있는 Broker에서 처리하면 된다.

Zookeeper

Kafka는 Cluster로 구성된 여러 개의 Broker를 관리하기 위해 Zookeeper를 이용한다.

Kafka에서 Zookeeper의 역할은 아래와 같다.

  • Broker와 Topic Partition의 Leader를 선출
  • Broker의 Metadata를 저장/관리
  • Kafka 설정을 관리

하지만 Kafka에서는 관리 포인트를 줄이기 위해 Zookeeper를 제외하려 한다.

대신 Kafka 내부적으로 관리하는 Kafka Raft(KRaft)를 도입하려 한다.

출처 : http://cloudurable.com/blog/kafka-architecture/index.html

728x90
반응형

'MLOps > Kafka' 카테고리의 다른 글

Kafka Broker Log 관리  (0) 2023.01.10
Ansible를 통한 Kafka 설치  (0) 2022.12.18
AWS EC2 Kafka 설치  (0) 2022.11.13
Kafka Topic  (0) 2022.10.03
What is kafka  (0) 2022.08.09
Comments