kafka(三)
1.服务端概述
完成消息的接收存储转发,集群维护,节点管理等功能。
2.整体架构
网络层负责接收和发送客户端请求,处理主要网络层逻辑,Api层主要完成业务逻辑,包括集群维护,负载均衡,日志存储。
3.网络层SocketServer
首先客户端与Acceptor连接,请求由Acceptor监听,监听到的请求由Processor来处理,processor首先处理必要的网络层逻辑,然后创建request对象放入requestQueue
Api不断从requestQueue中取出request处理,完成后将response放回responeQueue中,有processor完成向client的返回。
4.Api层
由网络层产生的request都由requestHandler来处理,这些handler中有一个kafkaRequestHandler,它会调用api的逻辑,来完成api的处理。
api主要就是完成了日志存储和集群管理的调用。
5.日志存储
消息的抽象是MessageSet,它有两个实现类,一个是FileMessageSet,另一个是ByteBufferMessageSet。
FileMessageSet用于管理日志文件,他对应一个磁盘上的真正文件。