[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)

kafka

지난 시간에 이어, 아파치 카프카의 ISR(In-Sync-Replicas)에 대해 알아보겠습니다. ISR은 리더 파티션과 팔로워 파티션이 모두 Sync된 상태를 의미합니다. 복제 개수가 2인 토픽(리더 파티션 1개와 팔로워 파티션 1개가 존재)으로 가정해보면, 팔로워 파티션에 리더 파티션의 모든 오프셋이 존재해야 동기화가 완료된 상태라고 할 수 있습니다. ISR이 완전하지 못하다면? 팔로워 파티션이 리더 파티션의 오프셋을 모두 복제하지 못한 상태로 서비스가 지속된다면, … Read more

[카프카] 3. 아파치 카프카의 복제(Replication)

kafka

지난 포스팅에 이어서, 아파치 카프카에서 가장 중요한 개념인 복제(Replication)에 대해 알아보겠습니다. 복제는 카프카를 장애 허용 시스템(Fault Tolerant System)이라고 할 수 있는 원동력입니다. 장애가 발생해도 데이터를 유지하고 안전하게 사용할 수 있게 해주죠. 카프카 브로커의 복제(Replication) 카프카의 데이터 복제는 파티션 단위로 이루어집니다. 토픽 생성 시 파티션의 복제 개수 (Replication factor)도 같이 설정 되는데, 디폴트로 브로커에 설정된 옵션 … Read more

[카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼

kafka

지난 포스팅에 이어서, 아파치 카프카(Apache Kafka)의 브로커, 클러스터, 그리고 주키퍼 등의 기본 개념에 대해 알아보겠습니다. 주키퍼는 카프카 클러스터를 운영하기 위해 필요한 Application이고 1개의 클러스터는 n개의 브로커루 구성되어 있습니다. 일반적으로 장애에 대비하여 최소 3개 이상의 브로커 서버를 클러스터로 그룹핑하여 사용합니다. 용어 설명 이해를 돕기 위해 각 용어의 간단한 설명으로 시작하고 본론에서 상세 설명을 시작하겠습니다. N개의 카프카 … Read more

[카프카] 1. 아파치 카프카가 무엇일까?

kafka

카프카(kafka)라고 불리는 Apache Kafka에 대해 알아봅니다. 카프카는 2011년 LinkedIn에서 파편화된 데이터 수집 및 분배를 고려하여 만든 아키텍처입니다. 데이터를 생성하고 적재하기 위해서는 Source Application(데이터 생성)과 Target Application(최종 적재)을 연결해야 하는데, 초기에는 Source Application에서 Target Application으로 단방향 통신을 함으로써 운영했지만, 아키텍처가 복잡해지고 Application의 개수가 많아지면서 많은 문제가 발생했습니다. 일부 Target Application에 장애가 생기면, 해당 Application을 바라보고 있는 Source Applicatoin들에도 영향을 끼칠 수 있었습니다.