Kafka定义
一个基于发布订阅模式的分布式消息队列。
系统架构
主要角色:生产者、消费者、Broker集群
特点
-
流量削峰
-
解耦
-
异步
应用场景
-
可以作为消息队列;流量削峰;
-
各个系统之间可以通过Kafka对接,解耦;
-
异步处理业务;如:用户注册成功后,短信、邮件可以异步消费Kafka消息;
文件存储
topic是逻辑上的概念,而partition是物理上的概念,每个partition对应于一个log文件,该log文件中存储的就是Producer生成的数据。Producer生成的数据会被不断追加到该log文件末端,为防止log文件过大导致数据定位效率低下,Kafka采取了分片和索引机制,将每个partition分为多个segment,每个segment包括:“.index”文件、“.log”文件和.timeindex等文件。这些文件位于一个文件夹下,该文件夹的命名规则为:topic名称+分区序号。
高效读写原因
-
Kafka本身支持分布式集群,支持多个分区,提高并发读写
-
顺序写磁盘
Kafka的producer生成数据,要写入到log文件中,写的过程一直