面试题:Kafka消息队列会丢数据么?

Mr.zhuMr.zhu2025-05-26 10:40:46来源:优站库 (www.uzkoo.com)阅读:2

 

 

 

熟悉Apache 大数据开发技术栈的朋友都知道 Kafka 在大数据开发中的作用,所以面试中会遇到相关问题。

这个问题问的非常好,所以有必要记录一下。对从事大数据开发的工程师来说也可以借鉴。

Kafka通常用于两大类应用:

· 构建实时流数据管道,在系统或应用程序之间可靠地获取数据

· 构建转换或响应数据流的实时流应用程序

下图可以看到Kafka 可以用于应用程序与数据库之间消息流传递的桥梁,可用于软件服务系统,数据分析及监控系统。

Kafka消息队列的应用

所以传递消息的可靠性是其非常关键的特性,同时也是软件服务质量的保证。

什么时候会丢数据能?

Kafka流媒体平台是发布和订阅消息的构架,类似于消息队列或企业消息传递系统。

由 Producer(生产),Broker(存储)和(Consumer)消费三部分构成。

 

生产者与消费者

先看Producer 的特性怎么用会数据丢失呢?

1. 当属性中的确认(ACK)不是all。

2. 当send后producer程序挂了丢数据(如果没用钩子,flush 也没来得及)

因为如下图所示 producer 先把数据放buffer里面,而且是异步的。Buffer里面的数据是内存中数据程序退出就没了。所以记得用钩子

 

Producer 中的 Buffer

下面是一个JAVA 8+关机钩子的例子:

 

钩子例子

总结:

其实这个问题遇到过,但是面试时候只想到了checkpoint 没有想到这里。

为什么呢?

只关注了自己最熟悉的方面来回答,并没有从系统构架上去思考

当我们把一个系统给它拆开分析的时候,就会有更多的思路,也就会有更全面的回答。

还有没有其它情况会丢数据呢?待续。

猜你想看

简历亮点突出
科技越来越先进,能搞定的国家越来越少,未来各国贫富差距更大
汽车这样通过路口,等同于闯红灯,交警:扣6分、罚200
工作中,领导是怎样被下属架空的?这3招你要知道,不得不防
APP购买视频VIP后仍广告不断?中消协律师:买之前要看清服务条款
《封神》票房破20亿奔25亿 即将回本赚钱?
教你几招避免和女性聊天时尬尴!
白酒的最佳“适饮期”是什么时候?很多人到现在都不知道,白喝了
大连超美的景点十大推荐,喜欢就收藏吧
建议女人一定要会化淡妆!教你6顺序,简单易学且24小时不脱妆
5种吃了就不饿的食物,长时间保持饱腹感才是减肥的背后秘密
如何知道有没有糖尿病?糖尿病的六个紧急征兆,你出现过吗?
Nature:发现人脑运动协调新区域,人类认知再次被刷新
身高不到160的小个子,穿裤子要避开这3种长度,显腿短又显矮
北京人爱喝什么啤酒?北京啤酒厂家大全,好多已经消失你喝过哪种
只知道天天投简历,求职渠道你选对了么?
立夏后,此肉要多吃,10元1斤,营养好吃不发胖,卤上一锅真馋人
什么时候买机票最划算?建议收藏
微信和女生聊天,3个技巧,越聊越开心!
职场焦虑如何应对?

推荐站点