Sender线程基于缓冲区发送数据流程精解.pdfVIP

  • 0
  • 0
  • 约小于1千字
  • 约 2页
  • 2026-08-12 发布于北京
  • 举报

Sender线程基于缓冲区发送数据流程精解.pdf

Sender线程会不停地轮询缓冲区内的HashMap,查看batch是否已满,或者linger.ms时间

是否已到,然后就需要发送数据。发送时会根据各个batch的目标leaderbroker进行分组

因为可能不同的batch对应不同的分区,但不同的分区的Leader可能位于同一个

broker上。Node,ListProducerBatch,接下来会进一步封装为Node,Request,每

个broker一次就是一个请求,但这个请求可能包含多个batch。接着就是将分组好的

batch发送给leaderbroker,并处理response,以回调每个batch的callback函数

发送出去的Request会被放入InFlighRequests中保存,MapNodeId,Deque

Request,这表示已发送但尚未接收到响应的请求

Sender线程会不停的轮询缓冲区内的HashMap,看batch是否满了,或者是看linger.ms时

间是不是到了,然后就得发送数据去,发送的时候会根据各个batch的目标leaderbroker来

进行分组

因为可能不同的batch是对应不同的分区,但是不同的分区的Leader是在一个broker上的,

Node,ListProducerBatch,接着会进一步封装为Node,Req

文档评论(0)

1亿VIP精品文档

相关文档