Kafka
-
Kafka - In-Sync-ReplicasFramework & Library/Kafka 2023. 2. 20. 15:48
In-Sync-Replicas ISR(In-Sync-Replicas)이란? - In-Sync-Replicas(ISR)은 Follower가 잘 복사해 가고 있는지 판단하는 지표이다. - ISR은 High Water Mark라고 하는 지점까지 동일한 Replicas(Leader와 Follwer)의 목록이다. - Leader에 장애가 발생하면, ISR 중에서 새로운 Leader를 선출한다. - replica.lag.max.messages 옵션을 통해서 ISR을 판단하여 ISR 중에서 Leader를 선정한다. replica.lag.max.messages란? - replica.lag.max.messages는 Follower와 Leader 간의 지연된 메시지의 개수를 판단하는 기준이 된다. - 예를 들어서, rep..
-
Kafka - ReplicationFramework & Library/Kafka 2023. 2. 20. 10:45
Replication Broker의 장애 발생 - Broker에 장애가 발생하면, 장애가 발생한 Broker의 Partition들은 모두 사용할 수 없게 된다. - Partition을 사용할 수 없기 때문에, Producer는 메시지를 보낼 수 없게 되고 Consumer는 메시지를 받아갈 수 없는 상황이 발생한다. - Broker에서 장애가 발생하면 장애가 발생한 Partition을 대신해서 기존의 Broker 내에 새로운 Partition을 만들어 장애를 해결하는 것은 어떨까? - Partition을 새로 생성한다는 것은 기존의 메시지와 Offset 정보를 버린다는 의미이기 때문에, 큰 문제가 발생한다. - 위와 같은 문제를 해결하기 위해 나온 것이 Replication이다. Replication - ..
-
Kafka 기초 - ConsumerFramework & Library/Kafka 2023. 2. 18. 19:38
Consumer Consumer의 동작 방식 - Consumer는 각각 고유의 속도로 Partition으로부터 순서대로 Read를 수행한다. - 다른 Consumer Group에 속한 Consumer들은 서로 관련이 없으며, Partition에 있는 Event를 동시에 다른 위치에서 Read 할 수 있다. Consumer Offset - Consumer Offset은 Consumer Group이 읽은 위치를 표시하는 역할을 한다. - Consumer가 자동이나 수동으로 데이터를 읽은 위치를 commit 하여 다시 읽음을 방지한다. - __consumer_offsets라는 Internal Topic에서 Consumer Offset을 저장하여 관리한다. Partition과 Consumer 1. Multi-P..
-
Kafka 기초 - Broker, ZookeeperFramework & Library/Kafka 2023. 2. 18. 17:50
Broker, Zookeeper Broker - Broker는 Partition에 대한 Read 및 Write를 관리하는 소프트웨어이다. - Kafka Server라고 부르기도 한다. - Topic 내의 Partition들을 분산, 유지 및 관리하는 역할을 수행한다. - 각각의 Broker들은 ID로 식별되며, ID는 숫자로 이루어진다. - Broker는 Topic 데이터의 일부분을 가지고 있을 뿐, 데이터 전체를 가지고 있지는 않다. - Client는 특정 Broker에 연결하면 전체 Cluster에 연결된다. - 최소 3대 이상의 Broker를 하나의 Cluster로 구성해야 되며, 보통 4대 이상을 권장한다. - Topic을 구성하는 Partition들은 여러 Broker 상에 분산된다. - Top..
-
Kafka 기초 - Topic, Partition, SegmentFramework & Library/Kafka 2023. 2. 17. 17:20
Topic, Partition, Segment Kafka의 주요 요소 - Kafka Cluster : Kafka의 Broker들의 모임, Kafka는 확장성과 고가용성을 위하여 Broker들이 Cluster로 구성된다. - Broker : 각각의 Kafka 서버, 동일 노드에 여러 개의 Broker들을 띄울 수 있다. - Topic : Kafka 안에서 메시지가 저장되는 장소의 논리적인 표현 - Zookeeper : Kafka Cluster의 정보 및 분산 처리 관리 등 메타 데이터를 저장, Kafka를 띄우기 위해 반드시 실행되어야 한다. - Producer : 메시지를 생산해서 Kafka의 Topic으로 메시지를 보내는 애플리케이션 - Consumer : Topic의 메시지를 가져와서 소비하는 애플리..
-
Kafka 기초 - Kafka란?Framework & Library/Kafka 2023. 2. 17. 16:14
Kafka란? Kafka(카프카)란? Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 제작된 오픈 소스 분산 이벤트 스트리밍 플랫폼이다. 이벤트 스트리밍이란 인체의 중추 신경계와 같다. 즉, 비즈니스가 더욱 소프트웨어화, 자동화됨에 따라 상시 가동되는 소프트웨어를 사용하는 세상을 위한 기반 기술이다. Kafka의 이벤트 스트리밍은 Fortune 100대 기업의 60% 이상을 포함하여 수많은 산업 및 조직의 다양한 사례에 적용된다. 1. 증권 거래소, 은행 및 보험과 같은 실시간으로 지불 및 금융 거래를 처리 2. 물류 및 자동차 산업과 같이 자동차, 트럭, 차량 및 선적을 실시간으로 추적하고 모니터링 3. 공장 및 풍력 발전 단지와 같..