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

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
架构和安全组 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:

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档