第一部分 原理介绍
Kafka: 是一个高吞吐低延迟的高并发,高性能消息中间件。配置良好的Kafka集群能够做到每秒几十万或者上百万的超高并发写入。
Produce
页缓存技术+磁盘顺序写
Kafka接收到数据的时候,都会往磁盘上去写
Page Cache
内存里面的缓存,是操作系统自己管理的缓存。
在写入磁盘文件的时候,可以直接写入到OS cache里。接下来由操作系统自己决定何时把cache里面的数据刷写到磁盘文件当中。
而且kafka写数据的时候,是以磁盘顺序写的方式来写的。
就是说写数据是按照追加文件末尾来写,而不是随机写的。
Consume
消费的本质是从磁盘文件读取某条数据然后发送到下游的消费者。
首先先判断数据是否在os cache,不在的话从磁盘文件中读取,放到cache当中.
然后从操作系统的OS cache里拷贝数据到应用程序进程的缓存去,再从应用程序进程的缓存拷贝数据到操作系统里面的socket缓存里面。
再从socket提取数据发送到网卡。