Apache Kafka®️를 위한 Pinterest 계층형 스토리지: 브로커와 분리된 접근 방식
아파치 카프카는 Pinterest에서 페타바이트 규모의 데이터를 처리하는 유비쿼터스 PubSub 솔루션으로 자리 잡았습니다. 증가하는 스토리지 수요를 해결하기 위해 계층형 스토리지는 값비싼 브로커 디스크에서 저렴한 원격 스토리지로 데이터를 오프로드하는 설계 패턴으로 부상했습니다.Kafka 3.6.0+의 기본 계층형 스토리지는 이 기능을 브로커 프로세스와 긴밀하게 결합하여 유연성을 제한합니다.Pinterest의 브로커 분리형 계층형 스토리지 구현은 스토리지와 컴퓨팅을 분리하여 비용 절감, 리소스 최적화, 보다 쉬운 도입과 같은 이점을 제공합니다.분리된 접근 방식은 최종 로그 세그먼트를 원격 스토리지에 업로드하는 세그먼트 업로더, 데이터 소비를 위한 계층형 스토리지 소비자, 단위당 스토리지 비용이 낮은 원격 스토리지 시스템을 사용합니다.세그먼트 업로더는 최종화된 세그먼트에 대해 브로커 파일 시스템을 모니터링하고, ZooKeeper(또는 최신 Kafka 버전에서는 KRaft)를 통해 리더십 변경을 감지하며, 데이터 연속성을 보장하기 위해 내결함성을 처리합니다.계층형 스토리지 소비자는 로컬 브로커 디스크와 원격 스토리지 모두에서 데이터를 읽어오기 때문에 서비스 비용을 절감할 수 있습니다.이 분리된 구현은 2024년 5월부터 매일 최대 200TB의 데이터를 브로커 디스크에서 더 저렴한 오브젝트 스토리지로 오프로드하고 있습니다.이는 브로커 성능에 영향을 주지 않으면서 계층형 스토리지 도입과 기능 업데이트에 유연성을 제공합니다.이제 Apache Kafka를 위한 Pinterest의 브로커 분리형 계층형 스토리지의 오픈 소스 구현을 사용할 수 있습니다.