对的, meitu 自己内部除了搞了一个 php 版本的 kafka consumer group ,还搞了一个 golang 版本的。
为什么不用已有的? 主要当前已有的版本设计有些不符合我们的预期,比如:
- consumer 启动消费,应该要么全部分区成功,要么启动失败而不能是部分,之前踩过这个坑
- 日志耦合到依赖库,依赖库日志量巨大,线上不得不关闭。如果有问题没有任何日志可以排查。
- 重试机制比较奇怪..
综上我们内部自己基于 sarama 和 go-zookeeper 开发了自己的版本,并在内部线上使用一段时间。
现在放到 github 上面来,欢迎 pr 或者拍砖。
地址: https://github.com/meitu/go-kafka-consumergroup
php 版本见之前主题: https://www.v2ex.com/t/330413