kafka网络模型
发布时间
阅读量:
阅读量
考虑到具有高效的吞吐率和处理效率,并未采用第三方网络框架;同时本系统采用Java NIO进行封装实现;总体网络模型如下。

将Broker的内部处理流水线化,并划分为多个阶段来进行(SEDA),从而显著提升处理吞吐量与性能水平;尽量避免Thead空闲等待;以下为具体过程说明
AcceptThread负责与客户端建立通信链路,并将Socket任务转交给ProcessThread进行处理。ProcessThread则管理接收客户端请求并返回相应响应数据,在每次Selector事件循环中依次执行这些操作。WorkThread则专注于业务逻辑以及文件读写操作,在每次从RequestQueue获取请求时完成相应的处理流程。每当WorkThread完成业务逻辑处理后会将结果存入ResponseQueue中等待后续处理指令的下发。当ProcessThread完成当前轮次的数据传输后会等待新的客户端请求并在Selector事件驱动下继续工作流程直至下一个周期的到来。该系统通过多线 threaded机制实现了高效并行的任务执行能力从而提升了整体服务性能
Kafka系统基于Reactor多线程
全部评论 (0)
还没有任何评论哟~
