现状

  1. 一台机器上多线程消费topic,差不多一个partition一个consumer
  2. 增加topic的partition触发了rebanlance,但并没有开始消费新的partition
  3. Shopify/sarama版本为1.13.1
  4. kafka版0.10.2

问题查找

  1. v1.24.1以下版本不会rebanlance
  2. 修复后理论上会rebanlance
  3. bsm/sarama-cluster不再更新,别使用

https://github.com/Shopify/sarama/pull/1525

原因

  1. 版本为0.10.2 <-不确定是否为该问题,但可以忽略
  2. kafka中的客户端ID相同,即每个线程的consumer使用默认ClientID,且IP地址相同

解决方法

  1. 配置ClientID且保证不同线程consumer不相同
  2. clusterCfg.ClientID = fmt.Sprintf("%s_%s", ConsumerId, uuid.New().String())
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐