Kafka | Broker, Replication, In-Sync Replica

2024. 2. 8. 01:04· Data/Kafka
목차
  1. Broker, Replication, In-Sync Replica
  2. Kafka Broker
  3. Kafka Replication
  4. Kafka ISR(In-Sync Replica)
  5. Why Replicate?
  6. Replication & Ack
  7. Replication count

Broker, Replication, In-Sync Replica

Broker, Replication, ISR(In-Sync Replica)은 kafka 운영에 있어 아주 중요한 역할을 한다.

 

kafka 아키텍처의 핵심인 replication(복제)은 클러스터에서 서버에 장애가 생겼을 때 kafka의 가용성을 보장하는 가장 좋은 방법이다.

Kafka Broker

Kafka broker란 kafka가 설치되어 있는 서버 단위이다.

보통 3개 이상의 broker를 구성해 사용하는 것을 권장한다.

Kafka Replication

replication은 partition의 복제이다.

  • replication : 1 → partition 1개만 존재
  • replication : 2 → 원본 partition 1개 + 복제본 partition 1개
  • replication : 3 → 원본 partition 1개 + 복제본 partition 2개

replication : 1, partition 1개만 존재
replication : 2, 원본 partition 1개 + 복제본 partition 1개
replication : 3, 원본 partition 1개 + 복제본 partition 2개

만약 partition이 1개이고 replication이 1인 topic이 존재, broker가 3대라면 3대 중 1대에 해당 topic의 정보(데이터)가 저장된다.

 

broker 개수에 따라 replication 개수가 제한되므로 borker가 3개인 경우 replication은 4가 될 수 없다.

 

원본 partition은 Leader partition이라 부르며,

나머지 복제본 partition은 Follower partition이라 부른다.

Kafka ISR(In-Sync Replica)

Leader partition과 Follower partition들의 그룹이다.

 

그룹에 속해있다는 것은 leader의 데이터와 동기화되어 있다는 것을 의미하며 leader에 문제가 생길 시 언제든 그 자리를 대신할 수 있게 된다.

Why Replicate?

partition의 고가용성을 위해 사용된다.

 

만약 broker가 3개이고, partition이 1, replication이 1인 topic이 존재할 때 갑자기 broker가 어떠한 이유로 사용할 수 없게 되면 더이상 해당 partition은 복구할 수 없다.

 

만약 replication이 2이면 broker 1개가 죽더라도 복제본 즉, follower partition이 존재하므로 복구가 가능하다. 해당 follower partition이 leader partition 역할을 승계하게 된다.

Replication & Ack

producer가 topic의 partition에 데이터를 전달한다. producer가 topic의 partition에 데이터를 전달할 때, 데이터를 전달받는 주체는 leader partition이다.

 

Producer에는 ack 상세 옵션이 있다. 이를 통해 고가용성을 유지할 수 있는데 이 옵션은 partition의 replication과 관련이 있다.

 

Ack 설정에는 0, 1, all 3개 옵션이 존재한다.

 

  • ack : 0 → producer는 leader partiton에 데이터를 전송하고 응답값을 받지 않는다.

leader partition에 데이터가 정상적으로 전송됐는지, 나머지 partition에 정상적으로 복제됐는지 알 수 없고 보장할 수 없다. 속도는 빠르나 데이터 유실 가능성이 있다.

 

  • ack : 1 → producer는 leader partition에 데이터를 전송하고 응답값을 받는다.

나머지 partition에 정상적으로 복제됐는지 알 수 없다. leader partition이 데이터를 받은 즉시 브로커에 장애가 생기면 나머지 partition에 데이터가 전송되지 못한 상태이므로 데이터 유실 가능성이 있다.

 

  • ack : all → producer는 leader partition에 데이터를 전송하고 응답값을 받는다. 또 나머지 follower partition에 복제가 잘 이루어졌는지 응답값을 받는다.

데이터 유실 가능성은 없으나 옵션 0, 1에 비해 속도가 현저히 느리다는 단점이 있다.

 

ack = 0

 

ack = 1

 

ack = all

Replication count

Replication이 고가용성을 위해 중요한 역할을 하지만 많을수록 좋은 것은 아니다.

Replication 개수가 많아지면 그만큼 broker의 리소스 사용량도 늘어난다.

 

따라서 kafka에 들어오는 데이터의 양과 retention date(저장 시간)를 잘 생각해 replication 개수를 정하는 것이 좋다.

3개 이상의 broker를 사용할 때 replication은 3으로 설정하는 것을 추천한다.

'Data > Kafka' 카테고리의 다른 글

Kafka | Topic이란?  (2) 2024.02.07
Kafka | 아파치 카프카 개요 및 설명  (0) 2024.02.07
  1. Broker, Replication, In-Sync Replica
  2. Kafka Broker
  3. Kafka Replication
  4. Kafka ISR(In-Sync Replica)
  5. Why Replicate?
  6. Replication & Ack
  7. Replication count
'Data/Kafka' 카테고리의 다른 글
  • Kafka | Topic이란?
  • Kafka | 아파치 카프카 개요 및 설명
u_hajin
u_hajin
u_hajin
꽉자바
u_hajin
전체
오늘
어제
  • 분류 전체보기 (19)
    • Data (0)
      • Airflow (8)
      • Kafka (3)
      • Project (8)
    • DB (0)
    • WEB (0)
    • 해결 (0)
      • 오류 (0)
      • Mac (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
u_hajin
Kafka | Broker, Replication, In-Sync Replica
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.