上周分享了如何使用go来对kafka进行生产和消费,这周接着对kafka消息队列的一些特性来进行使用。
上次讲到kafka有个consumer group的概念,而我们使用的sarama并没有支持,所以这次引入sarama-cluster项目 : go get “github.com/bsm/sarama-cluster”
producer的代码不变,参考上一篇文章,consumer的代码改为如下:
import KafkaCluster "github.com/bsm/sarama-cluster"
func KafkaConsumerCluster(consumerId string) {
brokers := []string{"182.61.9.153:6667","182.61.9.154:6667","182.61.9.155:6667"}
topics := []string{"0612_test"}
config := KafkaCluster.NewConfig()
config.Consumer.Return.Errors = true
config.Consumer.Offsets.CommitInterval=1*time.Second
config.Consumer.Offsets.Initial=sarama.OffsetNewest
config.Group.Return.Notifications = true
golang结合Kafka消息队列实践(二)
最新推荐文章于 2024-06-04 20:26:53 发布
本文继续探讨使用Golang操作Kafka消息队列,重点介绍如何利用sarama-cluster库实现消费者组。示例代码展示了如何创建消费者并处理错误、重平衡通知,以及获取特定分区的offset。通过消费者组,Kafka能均衡分配partition,实现多消费者共享topic,具有发布订阅特性。
摘要由CSDN通过智能技术生成