【问题标题】:How does Kafka handles producers when all brokers go down?当所有 broker 宕机时,Kafka 如何处理生产者?
【发布时间】:2018-02-21 04:44:38
【问题描述】:

在学习和测试 Kafka 的过程中,出现了一个疑问:

一切都停止时,Kafka 如何处理记录的生成

我知道消费者有一个民意调查超时,它会不时地继续投票以获取新记录,直到 Kafka 重新上线强>。

我还知道 Producers 有一个已添加到的队列。这是将内容推送到 kafka 的队列,但是如果整个 Kafka 集群宕机了怎么办?

由于显而易见的原因,Kafka 集群不再接收记录,但是客户端是如何发生的呢?

使用 Kafka for Spring,有什么机制可以处理这个问题吗?

【问题讨论】:

  • 据我了解,如果它倒了,什么都进不出
  • 我也是这么想的,但是客户端是怎么处理的呢?目的是知道会发生什么,所以整个系统都为此做好了准备,不会和kafka一起爆炸
  • 这取决于它是如何关闭的,如果套接字仍然打开,那么客户端会挂起(即等待响应)直到超时(如果有的话)(超时异常)。如果套接字没有打开,你最终会没有连接(没有连接异常)
  • 也许这会有所帮助:handling-broker-down-in-kafka

标签: java spring apache-kafka kafka-producer-api


【解决方案1】:

如果所有 Kafka 代理都关闭,则没有数据处理。您的数据流丢失了。我认为鉴于您有 3 个或更多 Kafka 代理,所有节点同时崩溃的情况很少见。

如果任何一个节点出现故障,则 DevOps 作业应捕获该节点并尝试重新启动它。如果重启不成功,那么它应该尝试启动一个新节点并将其添加到 Kafka 集群。这种自动化很复杂,需要 DevOps 团队来实施和维护流程。

【讨论】:

    【解决方案2】:

    这是非常罕见的场景,但仍然为了解决此类问题并管理 kafka 传入的高吞吐量 Kafka 提供了 Mirror Maker 工具,该工具有助于拥有集群的其他副本。如果当前集群宕机,生产者必须向镜像制造商代理发送消息。 https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 2019-07-12
      相关资源
      最近更新 更多