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

在线学习网站模板wordpress视频显示控件

在线学习网站模板,wordpress视频显示控件,佛山 网站,网站设计项目建设内容文章目录 概要整体架构流程技术名词解释技术细节coordinatorfetcherclientconsumer#poll的主要流程 全局总览小结 概要 继上一篇讲Producer原理的文章过去已经一个多月了#xff0c;今天来讲讲Consumer的原理。 其实源码早就读了部分了#xff0c;但是最近工作比较忙#x… 文章目录 概要整体架构流程技术名词解释技术细节coordinatorfetcherclientconsumer#poll的主要流程 全局总览小结 概要 继上一篇讲Producer原理的文章过去已经一个多月了今天来讲讲Consumer的原理。 其实源码早就读了部分了但是最近工作比较忙一直没空写文章。 整体架构流程 技术名词解释 coordinatorConsumer协调器负责管理Consumer需要加入到哪个消费组、消费哪个partition、提交offset等操作fetcher主要作用是获取待消费的records也是Consumer端最重要的组件keyDeserializer对record中的key进行反序列化valueDeserializer对record中的value进行反序列化client执行RPC请求时的网络client当然会包括一些Kafka内部的操作 技术细节 coordinator 其实协调器对于Consumer的处理分为几个阶段 Consumer加入的时候负责判断Consumer加入到哪个Consumer group、协调消费哪个partitionConsumer消费过程中负责记录Consumer消费的partition的元数据、partition的消费状态、消费offset更新partition的offset fetcher 从Fetcher的数据结构里其实就可以猜到它的作用缓存已Fetch到的records、去fetch更多的records completedFetch每次fetch请求得到的数据拆分到topicPartition维度。因为fetch请求是基于server的node维度请求回来的数据按照tp维度拆分得到不同的completedFetchcompletedFetchs: 已经fetch到的所有completedFetchnextInLineRecords当前正在被消费消息的completedFetch对应的所有records由于对于同一个tp当时Producer发消息时是按照batch维度发送的所以此时completedFetch里也包含多个batch每个batch包含多个record也就是records 如果缓存里没有消息呢 也就是completedFetchs和nextInLineRecords都是空 client 类型是ConsumerNetworkClient里面包含了一个NetWorkClient。至于NetWorkClient是如何进行数据处理及RPC的可以参考Producer原理解析那篇文章 unsent保存的是当前需要发送的fetchRequestpendingCompletion需要被处理的已完成的请求其实也就是之前的fetchRequest的responseclient该client是NetWorkClientProducer端是直接使用了该client 所以ConsumerNetworkClient的主要作用1. 处理之前fetch回来的数据2. 调用NetWorkClient将当前的fetchRequest发送出去 consumer#poll的主要流程 判断是否需要commit offset默认情况下5秒进行一次异步offset的commit 读取Fetcher的缓存如果有数据直接跳转到5 缓存里没有数据基于coordinator里保存的partition元数据封装fetchRequest 执行client#poll1. 处理之前fetch回来的数据解析为completedFetchs2. 调用NetWorkClient将当前的fetchRequest发送出去 调用自定义的消费逻辑程序员自己写的Consumer处理records 全局总览 小结 可以看到Consumer和Producer在逻辑处理上还是有较大不同的。 组件处理请求处理方式producer主要处理发送消息。对应RPC主要是写请求将业务逻辑和IO逻辑解耦。业务逻辑组装batchIO逻辑基于batch组装request并发送requestconsumer既要发送fetchRequest同时还要处理fetchResponse。对于RPC读写请求都占比较大业务逻辑和IO逻辑解耦但是串行化。业务逻辑从fetcher里poll已经fetch到的数据IO逻辑基于partition元数据组装fetchRequest处理fetchResponse发送fetchRequest Producer的IO是一个Sender线程在异步运行为什么Consumer不这么干呢 笔者觉得原因是 Producer的逻辑是把消息往外发所以Sender运行的越快client这边为了维护batch而消耗的资源内存和CPU越少而如果Consumer也这么干实际消费速度赶不上fetch速度的话会需要额外的内存和CPU资源来维持更多的completedFetchs更别说如果发生了rebalance的话fetch过来的completedFetchs可能都是白fetch了。所以总结下1. 兼顾消费速度2. 兼顾client的资源消耗性能
http://www.dnsts.com.cn/news/273376.html

相关文章:

  • 网站的html千图网素材下载网站
  • 模板网站外贸建站手机移动端网站怎么做的
  • 做问卷调查的网站有哪些内容网业小游戏在线玩
  • 太原在线网站建设wordpress怎么修改密码
  • 拓尔思网站建设公司网站兼容手机
  • 浙江省城乡建设网站wordpress黑客主题
  • 智能建站系统 网站建设的首选万表手表官网
  • 徐州金网网站建设增城新闻头条今天
  • 聊城网站建设公司电话国外专门做视频翻译网站
  • 网站建设还能赚钱吗电子商务网站建设的展望
  • 建三江廉政建设网站展厅设计费收费标准
  • 深圳低价建站宁波江北网站建设
  • 深圳网站开发公司有哪些各大搜索引擎收录入口
  • 北京网站建设一条龙三亚
  • led视频网站建设免费创建网站的软件
  • 做网站领券收佣金学校网站设计首页
  • 长春seo服务公司网站自己可以学习优化吗
  • 临沂网站建设费用1万流量网站 服务器配置
  • 拼团做的比较好的网站介绍个人网站的ppt怎么做
  • 如何把购物网站做成非经营网站官方网站建设公司
  • 布吉做网站公司网站搜索引擎优化技术
  • 炫酷网站建设网络运营是什么专业
  • 网站设计美工要怎么做seo是什么意思 职业
  • 克隆网站到wordpress修改企业网站建设的层次
  • 棋牌网站开发找人做网站安全吗
  • 查询注册过的网站河间做网站
  • 汕头论坛建站模板wordpress数据库删除所有评论
  • 金华正规网站建设总部找外贸工作哪个网站好
  • 深圳大兴汽车集团网站建设萧山做网站公司
  • .net 企业网站源码下载手机网站开发c 教程