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

    文章

    513

    浏览量

    25468
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19676
  • kafka
    +关注

    关注

    0

    文章

    51

    浏览量

    5216

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    面试中千万不能犯的错误

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

    面试时,自我介绍三禁忌

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

    以下五种人面试最难成功

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

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

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

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

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

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

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

    未来用机器人做面试官,可靠吗

    小鑫的遭遇备受关注,事件的另一主角——机器人面试官,也由此进入了人们的视线。机器人测试结果是否可靠?未来招聘中是否大规模应用人工智能?
    发表于 06-27 14:55 1500次阅读

    软件测试工程师面试常见问题汇总

    面试官常问的问题:
    的头像 发表于 08-31 10:49 3711次阅读

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

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

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

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

    程序员面试经验总结

    程序员面试过程中,面试官想要从 “ 自我介绍 “ 获得什么信息?
    的头像 发表于 04-23 17:03 2945次阅读

    你敢让AI成为你的面试官

    AI给面试带来的影响,总体来看优势与弊端都十分突出。人们初次见面时,往往十分注重第一印象,而这种印象有时甚至影响后续的面试进程。
    发表于 11-27 16:17 664次阅读

    如何保证kafka消息不丢失

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

    程序员去面试只需一个技能征服所有面试官

    个车辆工程专业的研究生去面试面试官最后问他会不会嵌入式。虽然应聘的岗位不是嵌入式工程师,但看来老板还是希望他能懂点这方面的知识。这个小插曲就说明了一个重要的就业
    的头像 发表于 11-05 19:35 195次阅读
    程序员去<b class='flag-5'>面试</b>只需一个技能征服所有<b class='flag-5'>面试官</b>!