Apache Kafka 주요 요소4(Replication)
🚩 Replication
- Broker 에 장애가 발생하면, 장애가 발생한 Broker의 Parition들은 모두 사용할 수 없게 되는 문제가 발생
- Producer가 Write하는 LOG-END-OFFSET과 Consumer Group의 Consumer가 Read하고 처리한 후에 Commit한 CURRENT-OFFSET과의 차이(Consumer Lag)가 발생할 수 있음.
- 이를 해결하기 위해 Partition을 복제하여 다른 Broker상에서 복제물을 만들어서 장애를 미리 대비
- Replicas - Leader Partition, Follower Partition으로 구성
- Producer는 Leader에만 Write하고 Consumer는 Leader로부터만 Read함
- Follow는 Broker 장애시 안정성을 제공하기 위해서만 존재하며 Leader의 Commit Log에서 데이터를 가져오기 요청(Fetch Request)으로 복제만함
- Leader에 장애가 발생하면, Follower중 새로운 Leader를 선출
- Clients(Producer/Consumer)는 자동으로 새 Leader로 전환
- Hot Spot 방지
- 하나의 Broker에만 Partition의 Leader들이 몰려 있으면 특정 Broker에만 Client(Producer/Consumer)로 인해 부하가 집중
auto.leader.rebalance.enable: 기본값 enable leader.imbalance.check.interval.seconds: 기본값 300sec leader.imbalance.per.broker.percentage: 기본값 10
위와 같은 설정값을 통해 Partition Leader에 대한 자동 분산이 가능하다.
- Rack Awareness
- 동일한 Rack 혹은 Abailable Zone상의 Broker들에 동일한 "rack name"지정
- 복제본(Replica-Leader/Follower)은 최대한 Rack 간에 균형을 유지하며 Rack 장애 대비
- Topic 생성시 또는 Auto Data Balancer/Self Balancing Cluster 동작 때만 실행
Author And Source
이 문제에 관하여(Apache Kafka 주요 요소4(Replication)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kidae92/Apache-Kafka-주요-요소4Replication저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)