아파치 카프카 애플리케이션 프로그래밍 with 자바 ‐ 들어가며 - dnwls16071/Backend_Summary GitHub Wiki
📚카프카 클러스터를 1대, 2대가 아닌 3대 이상의 브로커로 구성해야 하는 이유
1대로 운영하는 경우 : 브로커의 장애가 서비스의 장애로 이어지기 때문에 테스트 목적으로만 사용한다.
2대로 운영하는 경우 : 1대의 브로커에서 장애가 발생하더라도 나머지 1대의 브로커가 살아있기 때문에 안정적으로 데이터를 처리할 수 있다. 단, 브로커 간에 데이터가 복제되는 시간 차이로인해 일부 데이터가 유실될 수 있다. 유실을 막기 위해 min.insync.replicas 옵션을 사용할 수 있다.
3대로 운영하는 경우 : min.insync.replicas 옵션을 2로 설정하면 최소 2개 이상의 브로커에 데이터가 완전히 복제됨을 보장한다. 이 옵션을 2로 사용하려면 브로커를 3대 이상으로 운영해야만 한다. 왜냐하면 3개의 브로커 중 1개의 브로커에 장애가 발생하더라도 지속적으로 데이터를 처리할 수 있기 때문이다. min.insync.replicas 옵션값보다 적은 수의 브로커가 존재할 때 토픽에 데이터를 더 넣을 수 없다. 그렇기 때문에 상용에서 카프카를 운영할 때는 3대 이상의 브로커로 클러스터를 구축해야 한다.