面试官:Kafka是什么,它有什么特性与使用场景?
面试官:Kafka是什么,它有什么特性与使用场景?
哈喽!大家好,我是小奇,一位热爱分享的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!回复【项目】有我为大家准备的一些项目源码。
一、前言
不知不觉进入了五月份了,天气越来越炎热了,然而苦逼的我还要出门找工作,这朗朗乾坤难道就没有我奇谋人的容身之地吗?
背上我拉链拉不上的破书包,推开家里那破旧的木头门,走在我们人才村的小土道上,此时我陷入了沉思,我到底还要不要坚持,不行就跟村里的人一起出去打工好了,最起码不用加班啊。
不知不觉走到了村口,刘婶还像往常一样鸡贼的坐在村口东张西望,企图打听点什么消息。
刘婶:“小奇这是去哪里啊!还背着书包”。
我:“去镇上坐大巴车进京找工作”。
刘婶:“又去找工作啊,我没记错的话前两年你就在找工作吧”。
我:“没办法,一年比一年行情差”。
刘婶:“要我说你就别进京找工作了,在咱们人才村好好待着吧”。
我:“我不出去打工,那你养我啊”。
刘婶:“哎呀~~,你刘婶这么高贵,一般人可没有机会哟”。
刘婶:“但是要是小奇你的话,我肯定给你机会呀!”。
我:“算了吧刘婶,我这小体格子还是不冒险了。。。”。
刘婶:“哎呀小奇你想什么呢,我就想让你再给我讲几个八卦,这也不费力呀!”。
我:“等我过年回来了吧,到时候再给你讲”。
刘婶:“中,那说准了啊,刘婶跟你不见不散”。
(我特么保持微笑。。。)
坐上了进京的大巴车,车子缓缓开动,我的内心五味杂陈,这一去不知道几天才能找到工作,晚上不知道去哪里落脚呢。
车子越来越堵,我就知道快要到了,看着窗外慢慢从破旧平房转变成了高楼大厦,我不由得感慨,什么时候这里才能有我的一席之地啊。
二、面试
进了京我一刻也不敢停歇,马上找到要面试的公司准备面试,到了前台登记完毕,给hr打了一个电话,静静的等待着hr前来领我去面试。
一会儿一位颇有气质的大姐姐出来了,她一一席职业装,上身白衬衫虽然有些褶皱但是也遮不住她那丰腴的体态,下身的职业裙更显示出她的婀娜多姿。
大姐姐:“小奇是吧”。
我:“是我”。
大姐姐:“跟我来吧”。
她把我带到一个小姐姐身边跟她说来面试的,然后小姐姐给了我一份题让我先做。
我做完题交给了小姐姐,小姐姐就开始面试我了,我没想到竟然还有女开发,虽然小姐姐戴着口罩,但是通过她那清澈的眼眸以及娇小的身材,我能感受到这家公司需要我,我要留下来。。。(“逮虾户”)
小姐姐:“小奇是吧,带简历了吗?”
我:“带了,这是我的简历”。
小姐姐:“我看你写的精通kafka,真的吗?(小姐姐不可思议的瞪大了眼睛)”
我:“我时而精通时而了解,这得看面试官怎么样。。。”
小姐姐:“那你觉得我怎么样?”
我:“看我征不征服你就完了。。。”
三、Kafka是什么
小姐姐:“那你说一下kafka是什么吧”
我:“Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以支持分区,基于zookeeper协调的分布式消息系统,它相比其它消息队列中间件来说最大的特点就是可以实时的处理大量数据以满足各种需求场景”。
四、Kafka有哪些使用场景
小姐姐:“那你说一下kafka有哪些使用场景吧”
1、日志收集:
公司可以用kafka来收集公司系统的所有日志,然后通过kafka以统一接口服务的方式开发给其它数据处理中间件,例如hadoop等。
2、消息队列系统:
这个就跟其它的消息队列中间件类似了,就是解耦生产者和消费者,使用队列来缓存消息,达到削峰填谷的效果。
3、用户活动跟踪:
记得有一天刘婶牙疼呢,他就去网上搜牙疼是什么原因引起的,后来他就下地干活了,等晚上回来闲着没事打开了淘宝,发现全是给她推荐牙疼药的,刘婶说淘宝可真贴心呀,知道我正需要呢,先买上三盒药。
这里就是通过kafka来记录刘婶通过web网站搜索了什么,点击了什么,查看了什么,最后把这些活动收集到大数据分析平台,最终得出刘婶应该需要牙疼药。
4、运营指标:
kafka可以用来记录运营监控数据,比如一些警报或者报告。
五、Kafka有哪些特性
小姐姐:“那你说一下kafka有哪些角色组成吧”
1、Broker
消息中间件处理节点,一个Kafka节点就是一个broker,多个broker就可以组成一个kafka集群。
2、Topic
发布到kafka中的每一条消息都对应一个topic,kafka根据topic来对消息进行分类。
3、Producer
消息生产者,负责向Broker发送消息。
4、Consumer
消息消费者,从Broker读取消息。
5、ConsumerGroup
消费者组,消费者组里可以有多个消费者,一条消息可以被多个不同的消费者组消费,但是一个消费者组中只能有一个消费者消费到该消息。
可以理解为消费者组就是一个班级,消费者就是学生,然而学校可以为每个班级都发送一个三好学生奖状,但是每个班级里面只能有一个学生得到奖状。
6、Partition
一个topic可以分为多个partition,每个partition内部的消息都是有序的。
小姐姐:“那你说一下为什么要对topic下进行分区呢”
我:“本来一个topic就是一类消息,在数据量少的时候并不需要分区,但是kafka就是专门用来处理大量的数据的,所以如果数据过多的话那么在一台电脑上就存储不下,所以需要将topic分成多个partition,然后可以将不同的partition放入不同的电脑上”。
小姐姐:“小哥你还是真厉害啊”
我:“我更厉害的还在后面呢,等我入职了我慢慢给你展示。。。”
小姐姐:“行吧,我这里算过了,等我们项目经理来了我再问问他的意见吧”
我:“你不是项目经理啊,那你是hr吗,怎么会懂技术呢。。。”
小姐姐:“我也是开发”
我:“那你在这里工作几年了”
小姐姐:“今年是第三年”
我:“年轻真好,就是水灵。。。”
六、总结
这里关于Kafka还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
如果觉得我的文章还不错的话就点个赞吧,另外可以微信搜索【小奇JAVA面试】阅读更多的好文章,获取我为大家准备的资料。回复【项目】更有开源项目持续更新分享给大家。
更多推荐
所有评论(0)