5P by xguru 8시간전 | ★ favorite | 댓글과 토론
  • Rust로 작성된 고성능 Kafka 대체용 오픈소스
  • 고성능 로그 스토리지 엔진 위에 구축된 분산 메시지 스트리밍 플랫폼으로, 안정적인 스트리밍과 자동 리더 교체 기능 제공
  • Raft 합의 프로토콜을 통해 메타데이터 일관성 유지 및 장애 복구 지원
  • 세그먼트 기반 파티셔닝으로 부하를 자동 분산하고, 리더십을 라운드로빈 방식으로 회전
  • 핵심 기능
    • 세그먼트 단위 샤딩으로 토픽을 분할하고, 각 세그먼트별 리더 노드가 쓰기 담당
    • 리스 기반 쓰기 펜싱으로 단일 리더만 쓰기 가능, 분할 브레인 방지
    • 자동 롤오버로 세그먼트 크기 초과 시 메타데이터 변경 제안 및 리더 교체 수행
    • Sealed Segment Reads 기능으로 과거 데이터 복제본에서 직접 읽기 가능
    • io_uring 기반 고성능 I/O로 Linux 환경에서 높은 처리량 확보
  • 클라이언트 프로토콜
    • TCP 기반 길이 프리픽스 텍스트 프로토콜 사용
    • REGISTER, PUT, GET, STATE, METRICS 명령으로 토픽 생성, 메시지 송수신, 상태 조회 지원
    • 단순한 명령 구조로 어느 노드에나 연결 가능, 자동 포워딩 처리
  • 성능 특성
    • 쓰기 처리량: 세그먼트당 단일 라이터 구조로 안정적 성능 유지
    • 읽기 처리량: 복제본 수에 비례해 확장
    • 지연 시간: 평균 1~2 RTT 수준
    • 합의 오버헤드 최소화: 데이터 경로가 아닌 메타데이터에만 Raft 적용
  • 성능 비교
    • Kafka, RocksDB 대비 높은 쓰기 처리량 및 대역폭
    • fsync 비활성화 시 초당 120만 건 이상, 활성화 시에도 유사 수준의 안정적 성능 유지
  • MIT License