Kafka
-
[Kafka] - 7. In sync Replicas개발/Kafka 2022. 8. 5. 02:57
Replication of Partition 장애를 대비하기 위해 Partition을 Replicate하여 다른 Broker에 Replicas(복제본)을 만들어 두어 장애를 대비한다. 실제로 어떻게 복제하는가?를 알아보자 1. ISR In Sync Replicas 로 '얼마나 잘 복제하고 있는가'에 대한 지표 ISR은 High Water Mark라고 하는 지점까지 동일한 Replicas이다. Leader Partition은 가진 Broker와 이를 따르는 Follower (102,103)이 있다. replica.lag.max.messages 값이 4에 따라, ISR과 OSR이 나누어진다. High Water Mark LOG-END-OFFSET과 ISR의 Last-Committed offset의 차이가 r..
-
[Kafka] - 6. Replication개발/Kafka 2022. 8. 4. 18:31
Broker에 장애 발생 시? 장애가 발생한 Broker의 Partition들은 모두 사용할 수 없는 문제 발생 대안? 다른 Broker들에게 Partition을 만든다 하지만, 기존 Message(data)와 Offset 정보는 어떻게 처리해야할까? 라는 의문 발생 Replication Partition을 Replication하여 다른 Broker에 replicas(복제물)을 미리 만들어 대비한다. 즉, Leader(원본)와 Follower(복제물)을 만들어 구성한다. Client(Producer/Consumer)는 Leader에게서만 Write, Read 처리 할 수 있다. Follower는 Broker의 장애 시 안정성을 제공하기 위한 존재이다. Follower는 Leader의 Commit log(..
-
[Kafka] - 5. Consumer개발/Kafka 2022. 8. 4. 17:02
Consumer 고유의 속도로 Commit log에서 순서대로 Poll(Read를 수행) Consumer Offeset Consumer가 데이터를 읽을 위치를 Commit하여 다시 읽음을 방지한다. Topic_Consumer_offset Kafka internal Topic data로, Consumer의 offset의 위치를 저장하여 둔 공간이다. 아래 그림을 보면, Group A의 초록색의 Consumer는 현재 2번까지 read를 한 뒤, 3번을 commit한다. 이러한 Offset 정보는 Topic__consumer_offset이라는 Kafka internal 공간에 저장된다. Group B에서 각 Consumer는 서로 다른 Partition의 Offset 정보를 가지고 있다. 이를 각각의 Dat..
-
[Kafka] - 4. Producer개발/Kafka 2022. 8. 4. 16:10
Producer Producer는 Kafka에 Data를 넘겨주는 역할을 한다. ( Message = Data = Record = Event ) 1. Header(metadata) Topic, Partition, timestamp.. etc 2. Body Key-value Kafka는 Data를 Byte Array로 저장한다. Byte Array로 저장하기 위하여 Produce는 Data를 Serialize하며, Consumer는 Data를 확인 하기 위해 deserialze해야 한다. Key-value용 Serializer를 설정하기 위해서 아래 코드와 같이 사용한다고 한다. Properties props = new Properties(); props.put("bootstrap.servers", "lo..
-
[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는 서로 알지 못한다. Procuder와 Consuner는 각각 고유의 속도로 Commit L..
-
[Kafka] - 1. What is Apache Kafka개발/Kafka 2022. 8. 3. 21:24
Apache Kafka Linked-in에서 일 4.5조개의 Data를 처리하기 위하여 만든 솔루션 Data in motion platform = Event-Stream Platform Event란? 비즈니스에서 일어나는 모든 일 청구서 발행, 배송 물건의 위치 정보, 택시 GPS, Sensor 온도 등등.. Event가 발생함으로써 특징 Bussiness 모든 영역에서 광범위하게 발생 대용량의 Data가 발생한다 -> Message Queue로는 처리 속도를 잡을 수 없다. -> Event-Streaming Data의 필요성 Kafka는 이를 처리 할 수 있도록 만들었다. 특징 1. Event-Stream을 안전하게 전송(Publish&Subscribe) 2. Write to Disk 3. Proces..