0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

面试官:Kafka会丢消息吗?

小林coding 来源:小林coding 2024-04-29 17:32 次阅读

Kafka 会丢失信息吗?

许多开发人员普遍认为,Kafka 的设计本身就能保证不会丢失消息。然而,Kafka 架构和配置的细微差别会导致消息的丢失。我们需要了解它如何以及何时可能丢失消息,并防止此类情况的发生。

下图显示了消息在 Kafka 的生命周期中可能丢失的场景。

55d8ed58-05fe-11ef-a297-92fbcf53809c.gif

01 生产者(Producer)

当我们调用 producer.send() 发送消息时,消息不会直接发送到代理。

消息发送过程涉及两个线程和一个队列

  1. 应用程序线程
  2. 消息累加器
  3. 发送线程(I/O 线程)

我们需要为生产者配置适当的 "acks "和 "retries",以确保消息被发送到代理。

02 消息代理(Broker)

当代理集群正常运行时,它不应该丢失消息。但是,我们需要了解哪些极端情况可能会导致消息丢失:

  1. 为了提高 I/O 吞吐量,消息通常会异步刷到磁盘上,因此如果实例在刷新之前宕机,消息就会丢失。
  2. Kafka 集群中的副本需要正确配置,以保持数据的有效副本。数据同步的确定性非常重要。

03 消费者(Consumer)

Kafka 提供了不同的提交消息的方式。自动提交可能会在实际处理记录之前确认对记录的处理。当消费者在处理过程中宕机时,有些记录可能永远不会被处理。

一个好的做法是将同步提交和异步提交结合起来,在处理消息的循环中使用异步提交以提高吞吐量,在异常处理中使用同步提交以确保最后的偏移始终被提交。

下图是这个方法的伪代码:

try{
while(true){
ConsumerRecordsrecords=consumer.poll(Duration.ofMillis(1000));

for(ConsumerRecordrecord:records){
//processrecordsonebyone
}

consumer.commitAsync();
}
}catch(Exceptione){
//exceptionhandling
}finally{
try{
consumer.commitSync();
}finally{
consumer.close();
}
}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 架构
    +关注

    关注

    1

    文章

    493

    浏览量

    25325
  • 线程
    +关注

    关注

    0

    文章

    497

    浏览量

    19545
  • kafka
    +关注

    关注

    0

    文章

    49

    浏览量

    5176

原文标题:面试官:Kafka 会丢消息吗?

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【明天会更好】教你避开外企面试“高级”错误

    面试中,应试者又出于种种顾虑,不愿主动说话,结果使面试出现冷场。即便能勉强打破沉默,语音语调亦极其生硬,使场面更显尴尬。实际上,无论是面试前或面试中,
    发表于 03-09 10:53

    面试时要认真留意与观察

    提问,时间大约是半个小时。两轮面试后我拿到了这家公司的offer。 很幸运,我找到了一份不错的工作,总结面试经过,我有几点体会。 第一,切记不要迟到,带好笔和笔记本。 面试,最重要的就是留给
    发表于 08-04 18:52

    面试中千万不能犯的错误

    面试错误并不仅仅限于应聘者,面试官犯很多错误。以下上海公积金提取觉得是面试官们常犯的七个错误以及如何避免这些错误的方法:1. 谈论可能性。应聘者们自然地推销自己,但是
    发表于 08-31 08:45

    怎样读懂面试官的心

    实际上,面试也是供需双方心理上的较量。作为应聘者来说,了解对方的心理特征,做到“明明白白他的心”,就能变被动为主动。因此,适当学习些心理学,掌握面试考官的基本心理特征,有准备、有针对性地参加面试
    发表于 11-22 17:09

    面试时,自我介绍三禁忌

    格,对同一个应聘者的回答,会有不同的评判。“你回答3000元,有的面试官觉得你很踏实,实事求是。还有的面试官觉得你欲望不高,没有上进心。”因此,白斌建议在校大学生,要学会察言观色。
    发表于 11-25 19:57

    7个面试禁忌回答

    的诚实令人钦佩,但这样的回答,在面试过程中是无用且不被面试官认可的。  2、“我不了解贵公司”  如果你说不了解这家公司,面试官将会怀疑你为什么申请这个职位,是否只是为了金钱,而非职业。  3、“不,我
    发表于 12-06 18:53

    以下五种人面试最难成功

    。  (三)不注重个人职业形象者  当你在投递简历后接到面试通知后,你一般怎样做?选择一套合身的衣服,准备好需要呈给面试官的资料等,然后计算好去公司面试的时间在规定时间内达到
    发表于 12-15 21:41

    善用“微表情”打动面试官

    部位,帮助求职者矫正不良“微表情”。有学生发微博称,微表情很给力。  洞察HR“微表情”可投其所好  “微表情”不是求职者的专有名词,HR也有“微表情”。求职者如果能“察言观色”,也可以洞察面试官
    发表于 01-02 15:42

    关于应聘单片机职位的面试题目

    各位,有谁了解应聘单片机职位的笔试题目啊,会考察那些内容啊,面试官问一些什么问题呢?
    发表于 06-15 17:06

    程序员准备面试时常犯的错误总结

    1、只在电脑上练习 如果面试官要考核你的技术,很有可能会要求你在白板上写代码,而不是电脑上。所以,你就不能只在电脑上练习。电脑上的编译器自动发现你的语法错误,但是白板不会。 拿出笔和纸来练习下
    发表于 11-24 17:59

    千万别这么回答面试官问题!

    `又到一年面试季,小伙伴们都忙着找工作面试,是不是快被面试官的问题问成面瘫了。今天小编来教教大家如何复仇,一句话噎死面试官!01 请你自我介绍一下噎死
    发表于 03-08 14:28

    华为面试改革,你怎么看?

    编程语言,进行两轮面试,每轮约 45 分钟。面试官均独立进行面试考察,提前根据岗位要求设计编程考察题目,通过当面或视频编程的方式,考察实际编程能力及相关知识技能掌握程度。候选人编程 30 分钟,
    发表于 05-06 11:00

    面试官谈软件工程师面试技巧

    我最近一直在进行软件工程师面试面试开始时,我都会问面试官两个问题,但至今没有得到令我满意的回答:
    的头像 发表于 10-25 10:33 4308次阅读

    来自一线面试官的AI领域校招建议

    作为京东集团2019秋招的一名算法岗面试官,来为大家解读一下如何在AI领域的校招中脱颖而出。
    的头像 发表于 11-28 15:06 3165次阅读

    如何保证kafka消息不丢失

    如果在简历上写了使用过kafka消息中间件,面试官大概80%的概率会问你:"如何保证kafka消息不丢失?"反正我是屡试不爽。
    的头像 发表于 12-19 09:52 435次阅读
    如何保证<b class='flag-5'>kafka</b>消息不丢失