ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kafka 기초 - Producer
    Framework & Library/Kafka 2023. 2. 18. 18:32

    Producer

    Producer와 Consumer의 기본 동작 방식

     

     - Producer와 Concumer는 서로 알지 못하며, Producer와 Consumer는 각각 고유의 속도로 Commit Log에 Write 및 Read를 수행한다.

     - 다른 Consumer Group에 속한 Consumer들은 서로 관련이 없으며, Commit Log에 있는 Event(Message)를 동시에 다른 위치에서 Read 할 수 있다.

     

    Record(Message)의 구조

     

     - Record는 위 사진과 같이 Header, Key, Value로 구성된다.

     

    Serializer / Deserializer

     

     - Kafka는 Record를 Byte Array로 저장한다.

     

     

     - 위 사진과 같이, Key와 Value 용 Serializer를 각각 설정할 수 있다.

     

    Producer의 Record 전송 과정

     

    1. 사용자가 Record를 만들어 send() 메서드를 수행한다.

    2. Serializer에서 Record의 직렬화를 수행한다.

    3. Partitioner에서 메시지의 Topic을 어떤 Partition으로 보낼지 결정한다.

    4. 결과에 따라 분기를 수행한다.

     

    Partitioner의 역할

     

     - Partition = Hash(Key) % Number of Partitions 식을 이용하여, 어떤 Partition으로 보낼지 결정한다.

     - Kafka 2.4 이전의 Default Partitioner는 Round Robin 정책으로 동작한다.

     - Kafka 2.4 이후의 Default Partitioner는 Sticky 정책으로 동작한다.

     

    Sticky : 하나의 Batch가 닫힐 때까지 하나의 Partition에게 Record를 보내고 랜덤으로 Partition을 선택하는 정책이다.

     

    최종 정리

     1. Message, Record, Event, Data 모두 같은 의미이다.

     2. Message는 Header와 Key 그리고 Value로 구성된다.

     3. Kafka는 Record를 Byte Array로 저장한다.

     4. Producer는 Serializer, Consumer는 Deserializer를 사용한다.

     5. Producer는 Message의 Key 존재 여부에 따라서 Partitioner를 통한 메시지 처리 방식이 다르다.


    출처

     https://fastcampus.co.kr/dev_online_kafka

     

    728x90

    'Framework & Library > Kafka' 카테고리의 다른 글

    Kafka - Replication  (0) 2023.02.20
    Kafka 기초 - Consumer  (0) 2023.02.18
    Kafka 기초 - Broker, Zookeeper  (0) 2023.02.18
    Kafka 기초 - Topic, Partition, Segment  (0) 2023.02.17
    Kafka 기초 - Kafka란?  (0) 2023.02.17

    댓글

Designed by Tistory.