kafka topic 구성 및 cluster Rebalancing 에 대해 알아보자

Karim·2021년 10월 27일
3

kafka 운영

목록 보기
4/9
post-thumbnail

1. Version

💬

  • Kafka : 2.6.0
  • 구성 : cluster

2. topic describe

💬 console command

./kafka-topics.sh --describe --bootstrap-server server1:9092,server2:9092,server3:9092 --topic karim-cluster-topic

Topic: karim-cluster-topic      PartitionCount: 3       ReplicationFactor: 3 Configs: segment.bytes=1073741824
        Topic: karim-cluster-topic      Partition: 0    Leader: 1   Replicas: 1,2,3  Isr: 1,2,3
        Topic: karim-cluster-topic      Partition: 1    Leader: 2   Replicas: 2,3,1  Isr: 2,3,1
        Topic: karim-cluster-topic      Partition: 2    Leader: 3   Replicas: 3,1,2  Isr: 3,1,2

💬 topic Description

Setting nameDescription
Topic토픽 이름
PartitionCount파티션 개수
ReplicationFactor레플리카 개수
Configs설정 세그먼트 사이즈
Partition해당 파티션
Leader지정된 파티션에 대해 읽기 쓰기를 수행하는 노드이다.
Replicas해당 데이터에 대한 복제본 리스트
isr해당 파티션에 리더가 될 수 있는 서버들의 모임! 첫 리더가 죽으면 다름 서버가 리더가 될 수 있다!

3. Cluster Rebalancing 확인

💬 모든 서버 정상으로 기동 시 describe

Topic: karim-cluster-topic      PartitionCount: 3       ReplicationFactor: 3 Configs: segment.bytes=1073741824
        Topic: karim-cluster-topic      Partition: 0    Leader: 1   Replicas: 1,2,3  Isr: 1,2,3
        Topic: karim-cluster-topic      Partition: 1    Leader: 2   Replicas: 2,3,1  Isr: 2,3,1
        Topic: karim-cluster-topic      Partition: 2    Leader: 3   Replicas: 3,1,2  Isr: 3,1,2
  • Leader 및 Isr 고르게 분배되어 있는것을 확인 할 수 있다.

💬 server1 down!

Topic: karim-cluster-topic      PartitionCount: 3       ReplicationFactor: 3 Configs: segment.bytes=1073741824
        Topic: karim-cluster-topic      Partition: 0    Leader: 2   Replicas: 1,2,3  Isr: 2,3
        Topic: karim-cluster-topic      Partition: 1    Leader: 2   Replicas: 2,3,1  Isr: 2,3
        Topic: karim-cluster-topic      Partition: 2    Leader: 3   Replicas: 3,1,2  Isr: 3,2
  • server1 down으로 Leader:1이 담당하던 Partition:0Isr에 첫 번째에 있던 2번이 되었고,
  • server1 down되어 더이상 리더가 될 수 없으므로 Isr 리스트에서 제외 되었다.

💬 server1 up! -> server2 down!

Topic: karim-cluster-topic      PartitionCount: 3       ReplicationFactor: 3    Configs: segment.bytes=1073741824
        Topic: karim-cluster-topic      Partition: 0    Leader: 1       Replicas: 1,2,3 Isr: 3,1
        Topic: karim-cluster-topic      Partition: 1    Leader: 3       Replicas: 2,3,1 Isr: 3,1
        Topic: karim-cluster-topic      Partition: 2    Leader: 3       Replicas: 3,1,2 Isr: 3,1
  • server2 down으로 Leader:2이 담당하던 Partition:1Isr에 첫 번째에 있던 3번이 되었고,
  • server2 down되어 더이상 리더가 될 수 없으므로 Isr 리스트에서 제외 되었다.

💬 server2 up! -> server3 down!

Topic: karim-cluster-topic      PartitionCount: 3       ReplicationFactor: 3    Configs: segment.bytes=1073741824
        Topic: karim-cluster-topic      Partition: 0    Leader: 1       Replicas: 1,2,3 Isr: 1,2
        Topic: karim-cluster-topic      Partition: 1    Leader: 2       Replicas: 2,3,1 Isr: 1,2
        Topic: karim-cluster-topic      Partition: 2    Leader: 1       Replicas: 3,1,2 Isr: 1,2
  • server3 down으로 Leader:3이 담당하던 Partition:2Isr에 첫 번째에 있던 1번이 되었고,
  • server3 down되어 더이상 리더가 될 수 없으므로 Isr 리스트에서 제외 되었다.

📚 참고

https://kafka.apache.org/documentation/
https://soyoung-new-challenge.tistory.com/61

profile
나도 보기 위해 정리해 놓은 벨로그

0개의 댓글