【问题标题】:Is it possible to kill a consumer from the Kafka server?是否可以从 Kafka 服务器中杀死消费者?
【发布时间】:2019-07-12 00:11:35
【问题描述】:

当我检查消费者延迟时,它表明特定的 consumer-id 正在从使用主题的特定主机运行。 但是当我去那个主机时,没有这样的消费者在运行。

我如何杀死这个consumer-id,以便我可以重置其所属组的消费者偏移量。

Kafka server version: 0.11.0.1

Kafka client version(stuck): 0.10.0.2

这个consumer-id 最初被卡住了,因为一些消息在 Kafka 中有标头,因此它无法消费消息。

我已经尝试过以下方法:

  1. 从不同的主机和不同的 Kafka 版本消费,它会消费消息,但消费者 ID,主机不会改变。
  2. 正在重新启动作为该主题领导者的 kafka 代理。
  3. 更改安全组以防止主机连接到我的代理。

【问题讨论】:

  • 重置消费者的主机?
  • @AsierAranbarri 感谢您对此进行调查。我会尝试将此作为最后的手段,因为它由另一个团队拥有。我只是好奇作为拥有 Kafka 集群的人是否有可能的解决方案,而不是要求客户重新启动他们的主机。
  • 好吧,您可以将 SASL 设置为安全,所以如果仍有一些消费者挂起,它将被踢出。或者也许删除消费者组,然后重新启动代理,工作(也许不需要最后一步)。例如:stackoverflow.com/a/51925498/2148953
  • 刚看到你的版本
  • 是的,不能删除消费者组。不完全确定为什么将 SASL 设置为安全性会踢出挂起的消费者,但肯定会尝试一下(如果可能的话,因为这是一个生产集群)。

标签: apache-kafka kafka-consumer-api


【解决方案1】:

也许您看到的不是消费者 ID,而是消费者组,请参阅 Kafka 文档、消费者配置以了解区别。

Kafka 使用消费者组来跟踪最后消费的消息(消费者偏移量),所以当谈到消费者滞后时,这可能就是解释。

这意味着没有消费者在运行,你只需要去掉这个组的消费者偏移量。参见例如How do I delete a Kafka Consumer Group to reset offsets?

【讨论】:

  • 我的意思是消费者 ID。这个消费者组从不同的主题消费,这是它唯一挂起的主题。对于所有其他主题,只要我杀死消费者,它就会从消费者滞后屏幕上消失。
猜你喜欢
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多