参考文章链接:https://zhuanlan.zhihu.com/p/68052232
本文主要总结kafka的各项特点,用于辅助对该消息中间件的理解。
图中各项元素的含义:
Producer生产者,可以有多个生产者,作为消息的来源。
Broker实例,即kafka的实例,每一个Broker可以看作一个服务器,或者一个虚拟机,或者伪集群中的一个。
Topic主题,为消息的分类,可以有多个消息主题。
Partition分区,作用是负载,提高kafka的吞吐量,同一个Topic在不同的分区的数据是不一样的。
Consumer消费者,消息的消费方,是消息的出口
Zookeeper,kafkaj集群需要依靠zookeeper保存集群的元消息,保证系统的可用性。
kafka的设计核心是为了解决M个生产者N个消费者,则需要拉M*N条线,并且接口和协议均不相同,因此使用消息中间件来解耦消费者和生产者
特点:
- 生产者生产的数据首先写入leader,follower再进行同步,生产者不会主动写入follower
- kafka将数据写入磁盘,独立开辟一片区域,顺序存储,用于弥补IO时间消耗 <