본문 바로가기

Open Source/Kafka

topic 생성 시 유의 할 점

[1. partition 과 replication-factor]

  • paritition 개수는 적어도 broker 개수 만큼 있어야 한다.
    => partition 및 replication-factor 가 모두 1 인 경우,
    => Leader 장애 발생 시, produce 및 consume 모두 동작하지 않는다.. 
  • partition 개수를 하나만 할 경우, replication-fator 는 broker 개수 만큼 설정해야 한다.
    => replication-factor 는 broker 개수를 넘길 수 없다.
    => partition 개수는 broker 개수를 넘길 수 있다.
    => 다른 broker 가 Leader 가 되어, produce 및 consume 이 가능해 진다.
partition 개수 replication-factor 개수 동작
1 Leader partition 장애 시, produce 및 consume 문제 발생
1 broker 개수 만큼 Leader partition 장애 시, 다른 broker 가 Leader 가 됨.
produce / consume 문제 없음
broker 개수 만큼 1 특정 partition 장애 발생 시,
해당 partiton 에 대해서만 produce / consume 문제 발생
broker 개수 만큼 broker 개수 만큼 특정 partition 장애 발생 시, 다른 broker 가 역할을 대신 함.

[2. topic 의 partition 개수 조정]

partition 을 늘리는 방향으로 조정 가능

  • 줄이는 방향으로는 조정 할 수 없다.

[3. topic 의 replication-factor 개수 조정]

kafka-reassign-partitions 을 통해 조정이 가능함.

  • json 파일 작성 필요.
  • 특정 topic 의 특정 partition 에 대해서, replica 를 할당 할 broker id 등록(?)
{
    "version":1,
    "partitions":[
        {
            "topic":"abc",
            "partition":0,
            "replicas":[0, 1]
        }
    ]
}
  • ex) 
    => \bin\windows\kafka-reassign-partitions.bat --bootstrap-server 127.0.0.1:9092 --reassignment-json-file replica.json --execute

[4. 기타 사항]

replication-factor 조정 후, 해당 topic 제거 후 아래와 같은 오류가 다생 하였음.

  • kafka error shutdown broker because all log dirs in failed.
  • java.nio ~~ access denied.
  • Topic 'is marked for deletion

이 때 해결 방법은 카프카 클러스터를 관리하는 주키퍼에 직접 접속해서 해당 topic 을 직접 제거하는 것이다.

  • deleteall /brokers/topics/"여기에 문제가 된 topic"

 

'Open Source > Kafka' 카테고리의 다른 글

카프카 명령어 정리  (0) 2023.06.13
rdkafka 빌드  (0) 2023.06.07
카프카 서버 설정 값 정리  (0) 2023.02.15
Kafka 기본 개념  (2) 2022.02.26
Kafka 설치 및 실행  (0) 2022.02.20