프로젝트 소개

Sarama는 IBM이 유지 관리하는 Apache Kafka용 MIT 라이선스 Go 클라이언트 라이브러리입니다. Go 애플리케이션을 위한 Kafka 프로토콜의 포괄적인 구현을 제공합니다. ## 기능 **프로듀서** — 구성 가능한 파티셔닝 전략(랜덤, 라운드 로빈, 스티키, 키 기반)으로 Kafka 토픽에 레코드를 전송합니다. 동기 및 비동기 전송 모드, 메시지 배칭, 압축(gzip, snappy, lz4, zstd)을 지원합니다. **컨슈머** — ConsumerGroup 또는 직접 토픽/파티션 구독을 사용하여 Kafka 토픽에서 읽습니다. 수동 및 자동 오프셋 관리, 고수준 그룹 리밸런싱, 사용자 정의 파티션 할당 전략을 지원합니다. **트랜잭션 클라이언트** — 트랜잭션 시작, 커밋, 중단 작업을 포함한 exactly-once 시맨틱을 위한 API를 제공합니다. **브로커 관리** — Kafka 브로커 검색, 메타데이터 관리, 자동 리더 재할당을 처리합니다. ## 추가 리소스 - `mocks` 하위 패키지의 mock 구현은 단위 테스트를 용이하게 합니다. - `examples` 디렉터리의 예제 애플리케이션은 일반적인 사용 패턴을 보여줍니다. - `tools` 디렉터리의 명령줄 도구는 테스트, 진단, 계측을 지원합니다. ## 호환성 Sarama는 Kafka와 Go의 최신 안정 릴리스 두 개를 지원하며, 이전 버전에 대해서는 두 달의 유예 기간을 둡니다. 이 프로젝트는 시맨틱 버전 관리를 따르며 API 안정성 보장을 제공합니다. 전체 API 문서와 예제는 pkg.go.dev에서 확인할 수 있습니다.