论Kafka的整体流程

首先需要明确Kafka中Producer到Consumer的各个环节。Producer先通过网络发送到Broker,Broker会落入磁盘,Broker再通过网络发送到Consumer。

先看第一个环节Producer到Broker,Producer生产数据时,可以选择单条发给Broker,也可以通过批处理提升速度。在这个环节也可以利用数据压缩功能。在新的版本中引入了EOS,可以逐步处理事务,在此环节引入事务协调者,归Zookeeper管理。

第二个环节Broker的落盘,Producer发送到Broker后,因为数据需要落盘,为了减少用户态和内核态的之间的多次拷贝,引入MMAP,且在落盘时,为了减少IO,这里引入了Page Cache。

第三个环节Broker到Consumer,是通过 NIO 的 transferTo/transferFrom 调用操作系统的 sendfile 实现零拷贝,在这个环节有组协调者,归Zookeeper管理。

猜你喜欢

转载自blog.csdn.net/u010313979/article/details/113796913