Kafka基于高吞吐率和效率考虑,并没有使用第三方网络框架,而且自己基于java nio封装的,总体网络模型如下:

Broker的内部处理流水线化,分为多个阶段来进行(SEDA),以提高吞吐量和性能,尽量避免Thead盲等待,以下为过程说明。
- Accept Thread负责与客户端建立连接链路,然后把Socket轮转交给Process Thread
- Process Thread负责接收请求和响应数据,Process Thread每次基于Selector事件循环,首先从Response Queue读取响应数据,向客户端回复响应,然后接收到客户端请求后,读取数据放入Request Queue。
- Work Thread负责业务逻辑、IO磁盘处理等,负责从Request Queue读取请求,并把处理结果放入Response Queue中,待Process Thread发送出去。
Kafka高吞吐架构解析
本文深入解析了Kafka的高吞吐率设计原理,介绍了其基于Java NIO的自定义网络框架,以及Broker内部的流水线处理机制,包括AcceptThread、ProcessThread和WorkThread的职责与协作流程。
4万+

被折叠的 条评论
为什么被折叠?



