Kafka-Broker的基本模块

本文介绍了Kafka Broker的主要模块,包括SocketServer的Acceptor和Processor,KafkaRequestHandlerPool的线程池,KafkaApis的业务逻辑,以及OffsetManager、KafkaScheduler和KafkaHealthcheck的角色。SocketServer负责Socket服务,KafkaApis处理具体业务,OffsetManager管理消费者偏移量,KafkaScheduler调度定时任务,KafkaHealthcheck监控Broker健康状态。
摘要由CSDN通过智能技术生成

Broker简介:

      kafka集群是由若干个broker组成,可以简单得理解为broker就是部署在服务器的kafka节点。

 

 

1.SocketServer

    SocketServer作为Broker对外提供Socket服务的模块,主要用于接收socket连接的请求,然后产生相应为之服务的SocketChannel对象。

内部主要包括三个模块:

  • Acceptor主要用于监听Socket连接;
  • Processor主要用于转发Socket的请求和响应。
  • RequestChannel主要用于缓存Socket的请求和响应。

1.1Acceptor对象主要功能

(1)开启socket服务

(2)注册Accept事件

(3)监听此ServerChannel上的ACCEPT事件,当其发生时,将其以轮询的方式把对应的 SocketChannel转交给Processor处理线程。

1.2Processor对象主要功能
(1)当有新的SocketChannel对象进来的时候,注册其上的OP_READ事件以便接收客户端的请求。

(2)从RequestChannel中的响应队列获取对应客户端的请求,然后产生OP_WRITE事件。

(3)监听selector上的事件。如果是读事件,说明有新的request到来,需要转移给   RequestChannel的请求队列;如果是写事件,说明之前的request已经处理完毕,需要从   RequestChannel的响应队列获取响应并发送回客户端;如果是关闭事件,说明客户端已经关闭了   该Socket连接,此时服务端也应该释放相关资源。

1.3RequestChannel

    本质上就是为了解耦SocketServer和KafkaApis两个模块,内部包含Request的阻塞队列和Response的阻塞队列。

注:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值