오픈소스 분산 이벤트 스트리밍 플랫폼이벤트 전송로인 '파이프라인'을 관리하여 스토리지 간 연결을 통합, 관리하는 플랫폼여러 데이터들을 분산 관리해주는 플랫폼pub-sub 모델, 즉! 발행자와 구독자의 관계로 이뤄진다.발행자 -> 구독자 (X)발행자 -> Kafka ->
여러 대의 서버(브로커)로 구성된 Kafka 시스템클러스터는 대량의 데이터를 처리하고, 여러 소비자(Consume) 와 생산자(Producer) 에게 메시지 서비스를 제공한다.클러스터는 메시지의 저장, 처리 및 전달을 담당한다.클러스터는 고가용성과 확장성을 제공하며,
Kafka 브로커는 Kafka 시스템을 구성하는 개별 서버다.이 브로커들은 Kafka 클러스터를 형성하여, 전체 시스템의 일부로 작동한다.각 브로커는 Kafka 토픽의 하나 이상의 파티션을 저장하고 관리한다.이 파티션들에는 메시지 또는 레코드가 순차적으로 저장된다.브로
Kafka 토픽은 메시지들의 특정 카테고리 또는 피드를 나타낸다.토픽은 생산자(Producer) 가 데이터를 보내는 대상이며, 소비자(Consumer) 가 데이터를 읽는 출처이다.토픽은 데이터를 카테고리화하여 관리할 수 있게 해준다.예를 들어, 다양한 종류의 이벤트나
파티션은 Kafka 토픽을 구성하는 하위 단위이다.하나의 토픽은 여러 개의 파티션으로 나눌 수 있으며, 이는 Kafka 확장성과 병렬 처리 능력을 향상시킨다.각 파티션은 독립적으로 데이터를 저장하고, 여러 브로커에 걸쳐 분산될 수 있다.이를 통해 Kafka 는 데이터를
Segment Kafka 의 세그먼트는 파티션의 데이터를 실제로 저장하는 물리적인 파일이다. Kafka 는 각 파티션을 여러 개의 세그먼트 파일로 나누어 저장합니다. 역할 데이터 저장 단위 Kafka 는 로그 데이터를 순차적으로 기록하는 방식으로 데이터를 저장하는데,
Apache Zookeeper 는 분산 시스템을 위한 중앙 코디네이터Kafka 는 분산 시스템이기 때문에노드(=Broker) 간의 메타 데이터 관리리더 선출상태 동기화 같은 작업이 필요한데, 이런 부분을 Kafka 혼자하기에 어려움이 있다.그래서 Zookeeper 에
여러 대의 Zookeeper 서버가 하나의 클러스터를 이루는 구조1대가 죽어도 나머지로 계속 서비스 가능장애 복구 및 안정성 확보다수결 기반으로 동기화 보장쓰기 요청 처리, 모든 데이터 변경의 중심읽기 요청 처리, Leader 의 변경사항 복제읽기만 가능항상 홀수 개
Zookeeper 에서 데이터 일관성을 보장하기 위해 사용하는 합의 프로토콜즉, 여러 Zookeeper 서버가 동일한 데이터를 가지도록 만드는 방법이 ZAB하나의 리더가 모든 쓰기를 처리하고, 나머지 서버들과 동기화하면서 과반수 동의가 있을 때만 커밋하는 방식쓰기 요청
카프카에서 리더와 팔로워는 각자 역할이 나뉘는데 가장 중요한 것은 리더는 Write/Read 를 하고, 팔로워는 주기적으로 리더의 데이터를 보며 복제를 한다.만약 리더가 있는 브로커가 장애가 난다면 팔로워는 새로운 리더가 될 수 있다.이 때 데이터 정합성을 유지하기 위