文档详情

kafka源码-高性能server--socketServer试题.ppt

发布:2017-03-22约1.5千字共12页下载文档
文本预览下载声明
架构和安全组 kafka服务的各个组件构成 01 kafka服务器的启动过程 02 kafka通讯模块SocketServer源码分析 03 CONTENTS kafka的11中通讯协议简述 04 kafka高性能设计探秘 05 kafka服务组件构成 kafka服务是一个高性能的分布式日志管理系统。它主要包含如下功能组件,当broker启动时,会启动这些组件对应的后台服务处理各种事件。 定时任务调度 LogManager:日志管理 SocketServer:网络通信底层服务 ReplicaManager:副本管理 KafkaController:控制器服务 KafkaRequestHandlerPool:请求处理线程池 TopicConfigManager:topic配置管理 KafkaHealthcheck:broker健康状态注册服务。 kafka启动流程 kafkaServer各组件加载 Kafka底层通信:SocketServer Kafka SocketServer是基于Java NIO来开发的,采用了Reactor的模式, 其中包含了1个Acceptor负责接受客户端请求, N个Processor负责读写数据, M个Handler来处理业务逻辑。 在Acceptor和Processor,Processor和Handler之间都有队列来缓冲请求。 SocketServer相关角色 kafka网络通信的主要的角色如下: kafka.network.SocketServer:socketServer对象,用于初始化socketServer的各 个组件。 kafka.network.RequestChannel:通信过程中request和response的缓存。是 Processor和Handler交换数据的地方 kafka.network.Acceptor :客户端连接请求的接收者,将连接channel添加到 processer缓冲列表中。 kafka.network.Processor:客户端请求的读取解析,封装者。 kafka.network. BoundedByteBufferReceive:有界缓存区接收对象。 kafka.network.ConnectionQuotas:客户端连接的限制对象。 kafka.server.KafkaRequestHandlerPool:客户端request的处理的线程池 kafka.server.KafkaRequestHandler:客户端request的处理者 各个组件之间的依赖关系 sokect各个角色交互关系 11种通信协议 kafkaServer目前支持11中消息请求,也就是说kafka通过这11中通信协议提供所有的需求功能。下面是这11中通讯协议的简述: ProducerOrOffsetCommitRequest:用于处理生产者的写数据请求 FetchRequest: consumer或follower fetcher取数据请求 OffsetRequest:offset查询请求 TopicMetadataRequest:topic元数据缓存查询请求 UpdateMetadataRequest:更新topic的元数据缓存信息 LeaderAndIsrRequest:leaderAndIsr的更新请求 StopReplicaRequest:停止replica请求 ControlledShutdownRequest:停止Controller请求 OffsetCommitRequest: OffsetFetchRequest: ConsumerMetadataRequest:
显示全部
相似文档