![eb71d4489cf521234cd348c1716a5bd6.png](https://i-blog.csdnimg.cn/blog_migrate/8485f3b967365670d9ca2b3c621164df.jpeg)
来源: juejin.im/post/5dcf6b6e51882510a23314f3
- 前言
- 一、Kafka基础
- 消息系统的作用
- 1.Topic 主题
- 2.Partition 分区
- 3.Producer - 生产者
- 4.Consumer - 消费者
- 5.Message - 消息
- 二、kafka的集群架构
- Replica - 副本
- Consumer Group - 消费者组
- Controller
- kafka和zookeeper如何配合工作
- 加餐时间
- 1.Kafka性能好在什么地方?
- 2.日志分段存储
- 3.Kafka的网络设计
- finally
一、Kafka基础
消息系统的作用
应该大部份小伙伴都清楚,用机油装箱举个例子
![bb27bc269e766082997e703ee0efa889.png](https://i-blog.csdnimg.cn/blog_migrate/7bd3eec264bf7b41442af7809cdd365b.jpeg)
所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。 引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画像分析。
![3dc1c1e894446db3e03b0b423322ffae.png](https://i-blog.csdnimg.cn/blog_migrate/d3a53ef8e57a05e923f97c47999952ee.jpeg)
按照刚刚前面提到的消息系统的作用,我们知道了消息系统其实就是一个模拟缓存 ,且仅仅是起到了缓存的作用 而并不是真正的缓存,数据仍然是存储在磁盘上面而不是内存。
1.Topic 主题
kafka学习了数据库里面的设计,在里面设计了topic(主题),这个东西类似于关系型数据库的表
![6232c390cf08c86e08a4dfb6332f21cb.png](https://i-blog.csdnimg.cn/blog_migrate/3b627268b92c05e6c8755aa266a76d84.jpeg)
此时我需要获取中国移动的数据,那就直接监听TopicA即可
2.Partition 分区
kafka还有一个概念叫Partition(分区),分区具体在服务器上面表现起初就是一个目录,一个主题下面有多个分区,这些分区会存储到不同的服务器上面,或者说,其实就是在不同的主机上建了不同的目录。 这些分区主要的信息就存在了.log文件里面。跟数据库里面的分区差不多,是为了提高性能。