当前位置: 首页 > news >正文

七、Kafka源码分析之网络通信

1、生产者网络设计

架构设计图

image.png

2、生产者消息缓存机制

1、RecordAccumulator

将消息缓存到RecordAccumulator收集器中, 最后判断是否要发送。这个加入消息收集器,首先得从 Deque 里找到自己的目标分区,如果没有就新建一个批量消息 Deque 加进入

image.png

image.png

image.png

image.png

2、消息发送时机

如果达到发送阈值(批次发送的条件为:缓冲区数据大小达到 batch.size 或者 linger.ms 达到上限,哪个先达到就算哪个),唤醒Sender线程,

image.png

NetWorkClient 将 batch record 转换成 request client 的发送消息体, 并将待发送的数据按 【Broker Id <=> List】的数据进行归类

image.png

image.png

image.png

image.png

与服务端不同的 Broker 建立网络连接,将对应 Broker 待发送的消息 List 发送出去。

image.png

9)、

image.png

image.png

经过几轮跳转

image.png

3、Kafka通讯组件解析

image.png

http://www.lryc.cn/news/97377.html

相关文章:

  • WEB安全测试通常要考虑的测试点
  • 关于uni.createInnerAudioContext()的duration音频长度获取不到问题
  • 使用rknn-toolkit2把YOLOV5部署到OK3588上
  • 【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏模块14
  • ffplay播放器剖析(5)----视频输出剖析
  • 21.2:象棋走马问题
  • 【CSS】手写 Tooltip 提示组件
  • MySQL DDL语法
  • Git 绑定账号 和clone
  • ftp和sftp区别,以及xftp的使用
  • C++ 编程入门(一)—— Hello World
  • openlayers系列:加载arcgis和geoserver在线离线切片
  • 《人工智能安全》课程总体结构
  • unity关于匀速移动某些值的方法
  • 解决VScode下载太慢的问题记录
  • Gitlab服务器备份恢复及系统升级
  • docker入门讲解
  • 【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据))
  • 在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】
  • Java书签 #解锁MyBatis的4种批量插入方式及ID返回姿势
  • 在react项目中如何引入国际化
  • spring学习笔记十三
  • react native 本地存储 AsyncStorage
  • Postgresql数据库中的时间类型汇总
  • 算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费
  • 编程导航算法村 第五关 | 白银挑战
  • (十六十七)时序数据库是怎么存储用户名和密码的从InfluxDB OSS迁移数据
  • 5分钟开发一个AI论文抓取和ChatGPT提炼应用
  • SK5代理与网络安全:保障爬虫隐匿性与HTTP连接稳定性
  • 基于4G网络的嵌入式设备远程升级系统设计与实现(学习一)