Refrence:https://zhuanlan.zhihu.com/p/20772147?refer=bittiger
Mingche Su · 21 天前
查看完整视频:http://www.bittiger.io/classes
数据集成超麻烦,你往往会发现你用在收集整理数据的时间是最多的,像这样:
![](https://i-blog.csdnimg.cn/blog_migrate/084f1425d901ad51642324ed7ac87842.png)
数据有两种:一种是数据库数据,比如用户、产品等关系型数据;另一种是实时的数据,比如数据(包括用户点击、浏览等),应用数据(包括CPU的使用等)和log。
如果不同的数据用不同的数据库来存储监控,不同应用要从不同的地方取得需要的数据,就会这样(炸了):
所以Kafka出现了,把数据集成这个环节做的简洁高效,像这样:Kafka把这个过程抽象了一下变成了这样(眼熟不眼熟,就是生产者消费者模型呀):
Kafka最核心的是log,什么是log呢,log就是记录什么时间发生了什么事。当log很多就要做成分布式,对log分区,每个partition是独立的、不交互的,这样避免了partition之间的协调,非常高效。像这样:工作流程就是数据源(生产者)将数据写入log,消费者从log中提取数据,log起到了一个消息队列的作用。所以Kafka就是一个基于分布式log实现的,具有发布/订阅功能的消息系统。
因为Kafka用log记下了所有时间发生的所有事,任何一个状态都可以被恢复出来。Kafka的理念就是实时处理就是log加计算(Job),像这样:
本文整理作者:Mengying Tian,查看完整视频:http://www.bittiger.io/classes