写点什么

Kafka Broker 开小差了~

  • 2023-12-11
    广东
  • 本文字数:1211 字

    阅读完需:约 4 分钟

Kafka Broker开小差了~

Kafka Broker 宕机会带来哪些影响?

现如今,Kafka 作为一个高性能、高可靠性、分布式的消息队列系统,广泛地被应用于大规模互联网服务中,如 Tencent、Facebook、LinkedIn、Netflix、Airbnb 等知名公司。然而,在大规模的分布式系统中,服务的不可预测性、复杂性和耦合性经常会导致一些不可预测的故障事件。当 Kafka Broker 节点宕机时,可能会出现以下故障:

  1. 数据丢失: 如果正在写入宕机的 broker 的消息,则可能会导致数据丢失。在此期间,生产者可能无法将消息写入分区并将其复制到其他副本,因此可能会导致消息丢失。

  2. 可用性降低: 宕机的 broker 不再处理请求,这可能会导致生产者和消费者的请求超时。如果有多个 broker 节点宕机,集群的可用性会进一步降低。

  3. 延迟增加: 宕机的 broker 不再处理请求,这可能会导致生产者和消费者请求的延迟增加。当请求超时并重新发送时,它们可能需要等待其他节点回复,从而导致更长的延迟。

  4. 不均衡的领导者选举: 如果宕机的 broker 是分区的领导者,则需要进行领导者选举。如果宕机的 broker 重新启动,并且在它退出之前的备份没有被删除,则可能会导致不均衡的领导者选举。

  5. 副本同步延迟: 如果宕机的 broker 是一个或多个副本的复制者,则可能会导致副本同步延迟。如果这种延迟很大,可能会导致生产者和消费者读取或写入过时的数据。

腾讯云消息队列 CKafka(Cloud Kafka)

腾讯云消息队列 CKafka(Cloud Kafka)是基于开源 Apache Kafka 消息队列引擎,提供高吞吐性能、高可扩展性的消息队列服务。消息队列 CKafka 完美兼容 Apache Kafka 0.9、0.10、1.1、2.4、2.8、3.2 版本接口,在性能、扩展性、业务安全保障、运维等方面具有超强优势,让您在享受低成本、超强功能的同时,免除繁琐运维工作。腾讯云 CKafka 具有高可靠性、高可用性、高性能等特性,保证用户的数据安全。

故障原理

故障效果:CKafka 实例的某个或某个可用区 Broker 宕机离线。实例会出现未同步副本。

CKafka Broker 宕机逻辑:Broker 宕机之后(并不会自动拉起新的 broker 节点),会在集群中的其他 broker 节点中选出新的 topic-partition leader 副本,挂掉一台 broker,那么这台机器上的副本就不可用, 会导致 topic 少了一个副本, 并不会 “恢复到用户预期的副本数量”。对 CKafka 而言,只要有一个副本可用,就可以正常生产消费。故障恢复之后,原 Broker 上的副本会从其他 Broker 节点复制进而恢复。

CKafka Broker 节点宕机用户侧风险:故障之后,leader 副本切换通常是秒级的,在此期间,用户也许会收到重试警告,由于切换非常迅速,通常不会发生消息丢失(极小概率:消息写到 page cache,由异步线程刷盘,若在 page cache 数据没有刷盘的同时, follower 并未同步到 leader 副本的消息的情况下,会出现部分消息丢失)

故障示例图:一个 CKafka 实例(4 个 Broker 节点部署在两个可用区),将 Broker A 宕机之后,离线,CKafka 实例会将位于 Broker C 上的 Partition 0 的副本选为新的 Leader 副本,对外提供消息服务。



用户头像

检验系统稳定,构建韧性业务 2023-10-16 加入

腾讯混沌演练平台提供高效便捷、安全可靠的故障演习服务,除可视化故障注入服务外,还提供行业经验模板,监控护栏等核心功能,助力用户及时发现业务容灾隐患、验证高可用预案的有效性,从而提高系统的可用性和韧性。

评论

发布
暂无评论
Kafka Broker开小差了~_kafka_腾讯云混沌演练平台_InfoQ写作社区