kafka에 복제(replication) 개념이 있고, 아래 위키에서 잘 설명하고 있다. nosql을 공부하는 사람이라면 충분히 이해할 수 있을 것이다.
동기 복제와 비동기 복제 때문에 ack관련 설정이 있기 때문에 적당히 kafka를 이해할 필요가 있을 것 같다.
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication
복제 관련 운영 툴은 다음과 같다.
https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools
kafka-preferred-replica-election.sh
큰 클러스터에서 카프카는 브로커간에 리드 복제본이 균등하게 분산되게 한다. 브로커 종료가 실패하면 분산 기능이 균형을 이루지 못한다. 균등하게 분산하기 위해 카프카에 클러스터의 브로커간에 리드 복제본을 배포한다.
kafka-preferred-replica-election.sh 툴은 주키퍼 목록을 리드 복제본이 이동되야 하는 토픽 파티션 목록으로 변경한다. 컨트롤러는 기본 복제본이 리더가 아님을 알게 되면 브로커에 기본 복제본을 파티션 리더로 지정하라는 요청을 보낸다. 기본 복제본이 ISR(in-sync replicas) 목록에 없으면 컨트롤러는 데이터를 손실하지 않도록 작업을 실패 처리한다.
$ bin/kafka-preferred-replica-election.sh --zookeeper localhost:12913/kafka --path-to-json-file topicPartitionList.json
topicPartionList.json 파일은 다음과 같다.
{"partitions": [
{"topic": "topic", "partition": "0"},
{"topic": "topic", "partition": "1"},
{"topic": "topic", "partition": "2"},
{"topic": "topic2", "partition": "0"},
{"topic": "topic2", "partition": "1"},
{"topic": "topic2", "partition": "2"},
]
}
kafka-reassign-partitions.sh을 사용하면 복제본의 파티션 정책을 변경할 수 있다.
$ bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --execute
increase-replication-factor.json 파일은 다음과 같다.
{"partitions":[{"topic":"smackTopic","partition":0,"replicas":[2,3]}], "version":1 }
'kafka' 카테고리의 다른 글
kafka monitor에서 kafka 0.10.0.*를 지원한다. (0) | 2017.09.27 |
---|---|
[kafka0.10]kafka 서버를 단독으로 실행하는 방법 (0) | 2017.09.14 |
[kafka] 0.10.1.1 사용하면서 api 사용시 ProducerConfig와 ConsumerConfig를 잘 참조한다 (0) | 2017.03.16 |
[kafka] 구축 사례 - linkedin, uber, twitter, spotify, yahoo (0) | 2017.03.13 |
[kafka] kafka 0.10.1.1 - producer / consumer 중요 내용 (0) | 2017.03.08 |