프로젝트 소개
go-kafka는 MIT 라이선스로 github.com/faustbrian/go-kafka에 게시된 Go 모듈입니다. franz-go를 래핑한 제한적이고 명시적인 Apache Kafka 프로듀서, 컨슈머, 재재생, 검사, 트랜잭션 빌딩 블록을 Go 서비스에 제공하며, 호출 애플리케이션으로부터 전달 결과, 라이프사이클 소유권, 토픽 정책 또는 보안 구성을 숨기지 않는 설계 의도를 가지고 있습니다.
README는 범위와 한계를 명시하고 있습니다. 이 패키지는 최소 한 번 이상 전송 빌딩 블록을 제공합니다. 데이터베이스 쓰기 및 Kafka 게시를 원자적으로 만들지 않으며, 컨슈머 부작용을 정확히 한 번 이상으로 보장하지 않고, 토픽 또는 브로커 구성을 소유하지 않습니다. 애플리케이션은 모호한 게시 및 커밋 결과를 조정할 책임이 있으며, 라이브러리는 이를 구분 가능하게 유지합니다.
설치는 단일 모듈 가져오기인 go get github.com/faustbrian/go-kafka로 이루어집니다. 문서화된 빠른 시작에서 ProducerConfig는 클라이언트를 할당하거나 브로커에 연결하지 않고 부팅 중에 유효성 검사가 이루어집니다. 샘플은 브로커 목록, 클라이언트 식별자, 허용된 토픽 목록을 설정하고 Validate를 호출한 후 NewProducer로 프로듀서를 생성하고 defers Close를 호출합니다. 게시는 컨텍스트와 토픽, 키, 값 바이트를 포함하는 메시지를 사용합니다. README는 생성자 복제 허용목록을 통해 토픽 접근이 제한되므로 프로듀서가 사전 승인된 토픽만 주소 지정할 수 있다고 설명합니다.
보장 섹션은 여러 가지 구체적 동작을 나열합니다. 프로듀서는 franz-go 중복 전송 무결성을 유지하고 모든 동기 replica로부터 확인을 요구하며, 재시도, 버퍼링, 접수 및 전송을 제한합니다. 컨슈머는 명시적 확인, 재시도, dead-letter, 리밸런싱 및 종료 동작을 노출합니다. TLS 1.2 이상이 기본값이며, 인증 및 브로커 호환성은 명시적 배포 결정으로 설명됩니다. 서비스 통합, OpenTelemetry, Amazon MSK IAM용 선택적 모듈이 나열되어 있으며, 각각 라이브러리가 관리하는 것이 아닌 호출자 소유 라이프사이클을 가집니다.
문서는 docs 디렉토리에 조직되어 있으며, 인덱스, 호환성 매트릭스, 사양 결정 등록부, 전송 보장 문서, 운영 가이드, 그리고 완전한 프로듀서, 컨슈머, 재재생, 검사 및 라이프사이클 계약을 다룬 상세 참조를 포함합니다. README는 또한 이 패키지를 동반 라이브러리 및 선택적 어댑터와 비교할 수 있는 버전별 Golib 생태계 인덱스와 그 통합 및 데이터 이동 패밀리를 가리킵니다.
개발 및 릴리스 작업을 위해 README는 영향받은 모듈 디렉토리에 대해 golib check를 실행하고 make check를 실행하라고 안내합니다. 백엔드 및 관리 서비스 변경은 적용 가능한 통합 및 상호운용성 게이트를 통과해야 합니다. 지속적인 통합 및 CodeQL 상태 배지, Go 참조 배지, 릴리스 배지 및 Go 버전이 README 상단에 표시되며, Go 배지는 버전 1.26.6을 나타냅니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.