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还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
如果觉得我的文章还不错的话就点个赞吧