这个项目能做什么
go-kafka是发布于github.com/faustbrian/go-kafka的Go模块,采用MIT许可证。它基于franz-go封装,为Go服务提供有界、显式的Apache Kafka生产者、消费者、重放、检查和事务性构建块。其设计意图是不向调用方隐藏投递结果、生命周期归属、主题策略或安全配置。
README明确说明了范围和限制。该包提供至少一次语义的构建块,不保证数据库写入与Kafka发布原子性,不保证消费者副作用恰好一次,也不拥有主题或Broker配置。应用程序需自行解决模糊的发布和提交结果,库保持这些结果可区分。
安装仅需一条命令:go get github.com/faustbrian/go-kafka。在快速入门示例中,ProducerConfig在引导阶段即进行验证,无需分配客户端或连接Broker。示例设置了Broker列表、客户端标识符和允许的主题列表,调用Validate后通过NewProducer构造生产者并延迟关闭。发布操作接受context及携带topic、key和value字节的消息。README指出,通过构造函数中复制的白名单限制主题访问,因此生产者只能访问预先批准的主题。
保障部分列出了若干具体行为。生产者保留franz-go幂等性,要求来自所有同步副本的确认,并约束重试、缓冲、准入和投递行为。消费者暴露显式确认、重试、死信队列、再平衡和关闭行为。TLS 1.2及以上为默认设置,认证和Broker兼容性则视为显式的部署决策。服务集成、OpenTelemetry和Amazon MSK IAM的可选模块也被列出,各模块的生命周期均由调用方管理而非库管理。
文档组织在docs目录中,包含索引、兼容性矩阵、规范决策寄存器、投递保障文档、操作指南以及涵盖完整生产者、消费者、重放、检查和生命周期契约的详细参考。README还指向版本化的Golib生态系统索引及其集成和数据流转家族,用于将此包与配套库和可选适配器进行比较。
开发和发布方面,README指示对受影响的模块目录运行golib check,对仓库级变更和发布运行make check。后端和托管服务变更需通过相应的集成和互操作性检查。README顶部展示了持续集成状态徽章、CodeQL状态徽章、Go参考徽章、发布徽章及Go版本(1.26.6)。
评论
0 评分人数达到10人后显示
登录后参与讨论。