[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 | 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 |