ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kafka] - 2. Topic&Partition&Segment
    개발/Kafka 2022. 8. 3. 21:51

    용어 정리


    Topic

    Data를 최종적으로 저장하는 곳으로, 데이터를 구분하기 위한 장소

    Producer 

    Message를 Produce해서 Kafka의 Topic으로 Message를 보내는 Appication

    Consumer

    Topic의 Message를 가져와서 Consume하는 Application

    Consumer Group

    Topic Message를 사용하기 위해 협력하는 Consumer들의 집합

     

    • 하나의 Consumer들은 하나의 Consumer Group에 포함된다.
    • Consumer Group 내에 Consumer들은 협력하여 Topic의 Message를 분산 병렬처리한다.

     

    Producer&Consumer

    • Producer와 Consumer는 서로 알지 못한다.
    • Procuder와 Consuner는 각각 고유의 속도로 Commit Log에 Write,Read를 수행한다.
    • 다른 Consumer Group에 속한 Consumer들은 서로 관련이 없다.
    • Commit Log에 있는 Event를 동시에 다른 위치에서 Read 가능하다.

     

    Commit Log

    추가만 가능하고 변경 불가능한 Data Structure
    Data(Event)는 항상 Log 뒤에 추가되며, 변경되지 않는다.

     

    Offset

    Commit Log에서 Event의 위치
    • 아래 그림에서는 0~10까지의 Offset이 존재하는 것이다.
    • Offset 값은 계속 증가하며, 절대 0으로 돌아가지 않는다.

     

    Consumer_lag

    Log-End_offset(Producer가 Write하는 Offset)과 Current-offset(Consumer가 Read하는 Offset) 의 차이

     

    Logical View


    Topic

    Kafka 안에서 Message가 저장되는 장소를 논리적으로 표현( GPS / Payment .. )

    Partition

    Partition = Commit Log와 동일한 표현이다.
    • 하나의 Topic은 하나 이상의 Partition
    • 병렬처리(Throughput)을 위해서 다수의 Partition으로 나누어 구성한다.
    • Partition의 번호는 0부터 오름차순으로 구성된다.
    • Topic 내에 Partition은 독립적이다.
    • Partition에 저장된 Data는 immutable

    Segment

    Data(message)가 저장되는 실제 물리적인 File
    • Segment File이 지정된 크기보다 크거나 오래 되면 새파일이 생기고 Data는 새로운 File에 추가 된다.

     

    Physical View


    • Topic 생성 시 Partition의 갯수를 정한다.
    • Partition은 Broker들에게 분산, Segment file로 구성된다.
    • 만약 하나의 Topic에 대해 Partition을 3개 만든다 한다면 Broker 3개에 나누어서 처리된다.

     

    Rolling Strategy

    Segment를 분리하는 정책
    • log.segment.bytes = 1GB(default)
    • log.roll.hours = 168 hours(default)

    '개발 > Kafka' 카테고리의 다른 글

    [Kafka] - 6. Replication  (0) 2022.08.04
    [Kafka] - 5. Consumer  (0) 2022.08.04
    [Kafka] - 4. Producer  (0) 2022.08.04
    [Kafka] - 3. Broker&Zookeeper  (0) 2022.08.03
    [Kafka] - 1. What is Apache Kafka  (0) 2022.08.03

    댓글

Designed by Tistory.