Confluent 자체 균형 클러스터
이전에 카프카 클러스터를 관리한 적이 있다면 클러스터 전체에서 작업 부하가 균형을 이루도록 여러 브로커에 파티션을 수동으로 재할당하는 데 따르는 과제에 대해 잘 알고 있을 것입니다. 대규모 Kafka 배포를 운영하는 조직의 경우, 대량의 데이터를 재조정하는 일은 어렵고 지루하며 위험할 수 있습니다. 특히, 미션 크리티컬 애플리케이션이 클러스터 위에 구축된 경우 더욱 그렇습니다. 그러나 가장 작은 카프카 사용 사례라 하더라도 이 과정은 시간이 많이 걸리고 인간의 실수가 발생하기 쉽습니다.
저희 연구실에서는 클러스터 토폴로지 변경이나 부하 불균형에 따라 자동으로 재조정하는 Confluent 셀프 밸런싱 클러스터 기능을 테스트했습니다. Confluent 재균형 테스트는 노드 장애가 발생하거나 확장 노드에서 브로커 간에 데이터를 재균형화해야 할 때 새로운 브로커를 추가하는 데 걸리는 시간을 측정하는 데 도움이 됩니다. 클래식 카프카 구성에서는 클러스터가 커짐에 따라 재조정해야 할 데이터 양이 늘어나지만, 계층형 스토리지에서는 재조정이 적은 양의 데이터로 제한됩니다. 검증 결과에 따르면, 클래식 카프카 아키텍처에서 계층형 스토리지의 재조정은 몇 초 또는 몇 분이 걸리고 클러스터가 커짐에 따라 선형적으로 증가합니다.
셀프 밸런싱 클러스터에서는 파티션 재조정이 완전히 자동화되어 Kafka의 처리량을 최적화하고, 브로커 확장을 가속화하고, 대규모 클러스터를 실행하는 데 따른 운영 부담을 줄입니다. 정상 상태에서 자체 균형 클러스터는 브로커 전체의 데이터 불균형을 모니터링하고 클러스터 성능을 최적화하기 위해 지속적으로 파티션을 재할당합니다. 플랫폼을 확장하거나 축소할 때 셀프 밸런싱 클러스터는 자동으로 새로운 브로커의 존재 또는 기존 브로커의 제거를 인식하고 후속 파티션 재할당을 트리거합니다. 이를 통해 브로커를 쉽게 추가하고 해제할 수 있어 Kafka 클러스터가 근본적으로 더 탄력적으로 작동합니다. 이러한 이점은 파티션 재할당에 일반적으로 수반되는 수동 개입, 복잡한 수학 또는 인간 오류의 위험 없이 제공됩니다. 결과적으로 데이터 재조정이 훨씬 짧은 시간 안에 완료되고, 클러스터를 지속적으로 감독할 필요 없이 더 높은 가치의 이벤트 스트리밍 프로젝트에 집중할 수 있습니다.