首页 > 其他分享 >2023-07-10:Kafka如何做到消息不丢失?

2023-07-10:Kafka如何做到消息不丢失?

时间:2023-07-10 18:55:48浏览次数:51  
标签:10 副本 07 Kafka Follower 消息 Leader 丢失

2023-07-10:Kafka如何做到消息不丢失?

答案2023-07-10:

Kafka采用多种机制来确保消息的不丢失,其中包括副本机制、ISR(In-Sync Replicas)机制以及ACK机制等。

1.副本机制

Kafka通过副本机制来确保消息不会丢失。在Kafka中,每个分区都可以配置多个副本,每个副本保存分区的完整拷贝。当一个副本宕机时,Kafka会自动将其切换到其他可用副本上。因此,即使某个副本宕机,仍然能够保证消息不会丢失。

2.ISR 机制

在Kafka中,副本分为Leader副本和Follower副本。Leader副本负责处理消息,而Follower副本则简单地复制Leader副本的数据。当Follower副本与Leader副本之间出现落后时,Kafka会将Follower副本从ISR(In-Sync Replicas)中移除。只有当Follower副本与Leader副本之间的差距不大时,才会将Follower副本重新加入ISR,以确保消息不丢失。

3.ACK 机制

在Kafka中,生产者发送消息时可以通过设置acks参数来决定确认的级别。acks参数有三个选项:

  • acks=0表示生产者不等待消息的确认,直接发送消息到Kafka集群。这种方式可能会导致消息丢失,不建议使用。

  • acks=1表示生产者在消息被Leader副本确认接收后,视为消息发送成功。如果Leader副本在发送消息后立即发生故障,消息可能会丢失。如果Follower副本成功复制了消息,但Leader副本在故障前未能将消息写入磁盘,那么这条消息将会丢失。

  • acks=all表示生产者在所有ISR副本都确认接收到消息后,才将消息视为发送成功。这种方式可以最大程度地确保消息不会丢失,但会降低消息发送的性能。

通过合理配置acks参数,我们可以在消息可靠性和性能之间进行权衡,以确保Kafka中的消息不会丢失。

在这里插入图片描述

标签:10,副本,07,Kafka,Follower,消息,Leader,丢失
From: https://www.cnblogs.com/moonfdd/p/17542028.html

相关文章

  • 7.10
    九、内部类详解9.1实例内部类当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务(内部类就相当于公司的每一个部门,少了哪一个部门,就去定义那一个部门,而外部类就相当于整个公司)。在Java中,可以将一个类定义在另一个类或者一......
  • abc073d <Floyed + 枚举排列>
    D-joisino'stravel//https://atcoder.jp/contests/abc073/tasks/abc073_d//Floyed+枚举排列#include<iostream>#include<algorithm>#include<vector>#include<cstring>usingnamespacestd;usingLL=longlong;constintN=......
  • Kafka 存储
    目录逻辑存储持久化物理存储LogLogSegment文件格式索引清理删除事件逻辑存储持久化持久化是Kafka的一个重要特性。Kafka集群持久化保存(使用可配置的保留期限)所有发布记录——无论它们是否被消费。但是,Kafka不会一直保留数据,也不会等待所有的消费者读取了消息才删除消息......
  • 云原生周刊:Dapr 完成模糊测试审计 | 2023.7.10
    开源项目推荐Shell-operatorShell-operator是一个在Kubernetes集群中运行事件驱动脚本的工具。node-problem-detectornode-problem-detector旨在使集群管理堆栈中的上游层可以看到各种节点问题。它是一个在每个节点上运行的守护进程,检测节点问题并将其报告给apiserver。......
  • abc070d <简单树上dfs>
    D-TransitTreePath//https://atcoder.jp/contests/abc070/tasks/abc070_d//<简单树上dfs>#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;usingLL=longlong;constintN=1e5+10;structNode{......
  • Kafka 集群
    目录Kafka和ZooKeeper控制器如何选举控制器控制器的作用Topic管理(创建、删除、增加分区)分区重分配选举Leader集群成员管理数据服务副本机制Kafka副本角色ISR选举LeaderUnclean领导者选举处理请求元数据请求生产请求消费请求其他请求总结副本机制选举机制Kafka和ZooKeepe......
  • [CF407E] k-d-sequence
    [CF407E]k-d-sequence复健不会写代码。首先找充要条件,如一个子串\(a_l,a_{l+1}...a_r\)合法,则首先这些数互不重复,其次这些数对\(d\)取模相同,最重要的是\[\dfrac{\max{a}-\min{a}}{d}-(r-l)\lek\]左边表示最终形成的等差数列中的数的个数,\(r-l\)表示已经存在的......
  • Axure RP 10 for mac(UI/UX原型交互设计)Enterprise 10.0.0.3897 汉化版
    AxureRP10forMac是一款功能强大的UI/UX原型交互设计软件,为用户提供了丰富的工具和功能,以帮助设计师快速、高效地创建可交互的原型。→→↓↓载AxureRP10forMac 首先,AxureRP10提供了一个直观且易于使用的界面。它采用了现代化的设计风格,用户可以轻松地导航和找到所......
  • 07-控制结构
    程序流程控制介绍在程序中,程序运行的流程控制决定程序是如何运行的。主要有三大流程控制语句:顺序控制、分支控制和循环控制。1.顺序控制程序从上到下,逐行地执行,中间没有任何判断和跳转。2.分支控制(if,else,switch)分支控制if-else让程序有选择的执行,分支控制有三种:......
  • 使用一行脚本将视频关键帧数量小于10的视频拷贝到文件夹
    假设文件夹input中有很多视频,视频的后缀为mpeg,将视频关键帧数量小于10的视频拷贝到文件夹ouput中foriininput/*.mpeg;doffprobe-select_streamsv-show_frames-vquiet-print_formatjson=compact=1$i|grep'"key_frame":1'|wc-l|(readcount&&[$count-lt......