千家信息网

Kafka中怎么保证消息不丢失重复

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,Kafka中怎么保证消息不丢失重复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。消费端重复消费:建立去重表消费端丢失数据
千家信息网最后更新 2024年11月14日Kafka中怎么保证消息不丢失重复

Kafka中怎么保证消息不丢失重复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  • 消费端重复消费:

    • 建立去重表

  • 消费端丢失数据:

    • 关闭自动提交offset,处理完之后受到移位

  • 生产端重复发送:

    • 这个不重要,消费端消费之前从去重表中判重就可以

  • 生产端丢失数据:

    • 1、异步方式缓冲区满了,就阻塞在那,等着缓冲区可用,不能清空缓冲区

    • 2、发送消息之后回调函数,发送成功就发送下一条,

    • 发送失败就记在日志里,等着定时脚本(定时器)来扫描

    • (发送失败可能并不真的发送失败,只是没收到反馈,定时脚本可能会重发)

    • 解决策略:

如何保证有序(同步发送能保证顺序):

  • 同步发送模式:发出消息后,必须阻塞等待收到通知后,才发送下一条消息

  • 异步发送模式:一直往缓冲区写,然后一把写到队列中去

  • 两者都是各有利弊:

    • 同步发送模式虽然吞吐量小,但是发一条收到确认后再发下一条,既能保证不丢失消息,又能保证顺序

kafka数据丢失原因:

  1. 有3种状态(0(不需要等待确认)、1(leader确认)、-1(all确认))保证消息被安全生产,

    • 在配置状态为1(只保证写入leader成功的话),如果刚好leader partition挂了,数据就会丢失

  2. 使用异步模式的时候,当缓存区满了,

    • 如果配置状态为0(还没收到确认的情况下,缓冲池一满,就清空缓冲池里的消息),数据就会被立马丢弃掉

  3. 如果配置状态为-1

    • 由于ISR可能会缩小到仅包含一个Replica,所以设置参数为all并不能一定避免数据丢失

在数据生产时避免数据丢失的方法:

  • 只要能避免上述两种情况,那么就可以保证消息不会被丢失。


看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

消息 数据 保证 缓冲 消费 模式 状态 缓冲区 生产 同步 配置 成功 情况 脚本 顺序 帮助 阻塞 有序 清楚 重要 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 和平精英如何快速连接到服务器 军营网络安全黑板报 威海联通dns服务器地址 格力总公司要软件开发人员吗 北京网络安全认证 四个数据库系统分别是什么 软件开发工程师从什么开始学 易语言edb数据库设密码 疫情银行系统网络安全 互联网运营科技开发哪个有前途 新一代数据库技术特征 我的世界服务器货币体系 漯河市网络安全宣传周 网络安全职业联赛 剑灵电信2区服务器 华硕路由器刷梅林软件开发中 瑞杰信网络技术服务部 辽宁正规软件开发服务推广 系统集成资质能做软件开发吗 未来网络技术研究所 网络安全知识手抄报图片简单画 花体字网络安全手抄报 怎么上传文件到云服务器 魔兽世界9.2人口最少的服务器 邹平hr管理软件开发 产品经理要做数据库设计吗 运营和网络安全管理 办理手机软件开发有限公司 网络安全预防诈骗漫画 安卓软件开发 收费
0