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

网站常用的字体wordpress 404跳转首页

网站常用的字体,wordpress 404跳转首页,湖州网站开发,crm系统和erp的区别kafka自定义了一套网络协议,遵守这个协议的格式,就可以像kafka推送消息或者拉取消息 kafka生产者主要实现的功能: 同步/异步发送消息 批量发送消息 超时重发 生产者代码步骤 1.明确发送时同步还是异步;2.明确kafka服务端的主机…

kafka自定义了一套网络协议,遵守这个协议的格式,就可以像kafka推送消息或者拉取消息 kafka生产者主要实现的功能:

  • 同步/异步发送消息

  • 批量发送消息

  • 超时重发

生产者代码步骤
  • 1.明确发送时同步还是异步;2.明确kafka服务端的主机名和端口号;3.明确发送的topic;4.循环分析:要是异步发送,生产者发送消息给kafka服务端,然后忙自己的事,收到服务端发来的ack确认消息后,会调用回调函数;同步机制:生产者发送消息给kafka服务端,阻塞等待,收到服务端发来的ack确认消息后,会调用回调函数

  • 具体过程:消息发送过程,涉及两个线程协同工作

  • 主线程:将数据封装成ProducerRecord对象,调用send()将消息存在RecordAccumulator中

  • Sender线程:从 RecordAccumulator 中不断拉取数据并发送到 Kafka,并进行响应处理 从RecordAccoumulator中批量取出消息(都是同一topic+分区)构成ProducerBatch,取出多个ProducerBatch封装成ClientRequest,将ClientRequest交给NetworkClient,NetworkClient将请求通过kafkachannel执行I/O线程批量发送给broker,收到响应后,调用ClientRequest的回调函数

kafkaProducer
  • 实现了四个方法

//1
send()将消息存入RecordAccumulator
//2
flush(),等待RecordAccumulator中的消息发送完全
//3
partitionsFor(),从Metadata(存储kafka集群的元信息)中获取制定Topic的分区信息
//4
close()关闭Producer对象,等待RecordAccumulator清空,关闭Sender线程
  • 重要字段解释(cv)

PRODUCER_CLIENT_ID_SEQUENCE:clientId的生成器
clientId:此生产者的唯一标识
partitioner:分区选择器
maxRequestSize:消息的最大长度,包含消息头
totalMemorySize:发送单个消息的缓冲区大小
accumulator:RecordAccumulator
sender:发送消息的Sender任务
ioThread:执行Sender任务发送消息的线程
compressionType:压缩算法
keySerializer:key的序列化器
valueSerializer:value的序列化器
Metadata metadata:整个Kafka集群的元数据
maxBlockTimeMs:等待更新Kafka集群元数据的最大时长
requestTimeoutMs:从消息发送到收到ACK响应的最长时长
interceptors:ProducerInterceptor集合,ProducerInterceptor可以在消息发送之前对其进行拦截或修改;也可以先于用户的Callback,对ACK响应进行预处理producerConfig:配置对象,使用反射初始化KafkaProducer配置的相对对象
  • 为什么要在kafkaProducer中维护kafka集群的元信息

  • 在创建ProducerRecord时,只需指定topic的名称,那么他是怎样去特定的分区的,那么就是元信息中存储着这个topic对应几个分区,经过特定算法可以知道目标分区,那么最终时需要知道目标分区的leader所在服务器的地址,端口,这些信息也存在元信息里面

  • 元信息具体数据(可以理解为通过结构体存储信息)

//Node表示一个集群的节点broker,Node记录这个节点host,ip,port
type Node struct {ID   intHost stringPort int...
}
//TopicPartition表示某个topic的分区,里面有topic名称,这个分区在这个topic的编号id
type TopicPartition struct {Topic     stringPartition int...
}
//PartitionInfo:分区详细信息,里面有topic string,partition int[和上面一样],还有leader Node[leader所在节点的id],replicas Node[]-所有副本所在的节点信息,inSyncReplicas-isr集合中所有节点信息
type PartitionInfo struct {Topic           stringPartition       intLeader          NodeReplicas        []NodeInSyncReplicas  []Node...
}
  • 这些信息都包含在cluster集群中,这个cluster核心字段如下:

  • 1.nodes:kafka集群中节点列表([]Node)

  • 2.nodesById: BrokerId<->Node (map(int,Node))

  • 3.partitionByTopicPartition:TopicPartition<->PartitionInfo(map(TopicPartition,PartitionInfo))

  • 4.partitionsByTopic:Topic名字<->PartitionInfo(map(string,[]PartitionInfo))

  • 5.avaliablePartitionsByTopic:Topic名字<->PartitionInfo(map(string,[]PartitionInfo))

  • partitionsByTopic和avaliablePartitionsByTopic的区别是上面那个可以没有leader【在某些中间状态,leader宕机状态】,下面那个必须有leader

  • 6.partitionsByNode:Node<->Partitioninfo(map(int,[]PartitionInfo))

这些怎样用呢?1.查找所有broker的信息;2.通过broker的id找到他的Node信息;3.通过TopicPartition找到更加具体的PartitionInfo;4.找到topic下面的所有分区信息(可以是中间状态);5.找到topic下面的所有分区信息(必须有leader);6.找到broker这个下面的所有分区信息
Metadata封装了cluster,核心字段如下
  • topics:所有topic

  • version:cluseter集群版本号,每更新一次集群就会使他+1

  • metadaExpireMs:更新集群元信息间隔

  • refreshBackoffMs:两次更新集群元信息最小间隔

  • lastRefreshMa:上次更新元数据时间(失败和成功都包含)

  • lastSuccessfulRefreshMs:上次元数据更新成功时间

  • cluster:kafka集群元数据记录

  • needUpdate:是否强制更新元数据-还不太懂

  • listeners:监听Metadata更新的监听器集合-还不太懂

  • needMetadaForTopics:是否更新全部的topic的元数据


Metadata核心方法
//将needUpdate更新为true,目的:Sender线程运行时更新Metadata记录的元数据,然会version的值
requestUpdate() 
//通过version版本号来判断元数据是否更新成功,要是没有就阻塞 
awaitUpdate()
Metadata中的字段由主线程读取,Sender线程负责更新,因此必须要保证线程安全性,因此一般都要给他配置sync
waitOnMetadata()函数分析
  • 看自己需要的topic是否在Metadata里面,要是没在,就加进去

  • 获取topic中分区的详细信息,要是失败,调用requestUpdate(),唤醒Sender线程,使得Sender线程更新Metadata记录的元数据

  • 主线程调用awaitUpdate(),等待Sender线程更新元数据成功

  • 回到第二步直到获取partitioninfo分区信息成功


文章转载自:

http://uZzLqNpj.tgwfn.cn
http://3mKsr9bX.tgwfn.cn
http://kR4Wbez2.tgwfn.cn
http://0qbNywru.tgwfn.cn
http://aPClhzDZ.tgwfn.cn
http://omxH4iAy.tgwfn.cn
http://Ad67LjuB.tgwfn.cn
http://RSMqMnc2.tgwfn.cn
http://r24oHMnF.tgwfn.cn
http://hfrEw3rW.tgwfn.cn
http://9lzG17wF.tgwfn.cn
http://ZNz6W7Cy.tgwfn.cn
http://M62gns6k.tgwfn.cn
http://U7iUinMC.tgwfn.cn
http://jVOMrOHq.tgwfn.cn
http://TMrfHN5i.tgwfn.cn
http://9bFsDBuG.tgwfn.cn
http://QB9HBH1W.tgwfn.cn
http://8NtGRB0S.tgwfn.cn
http://WwVvnJ82.tgwfn.cn
http://7YTNsX3O.tgwfn.cn
http://iKefJIBz.tgwfn.cn
http://wTSwT3j8.tgwfn.cn
http://hhzYZULy.tgwfn.cn
http://8GnITZco.tgwfn.cn
http://aiAKnUIc.tgwfn.cn
http://k37X5SpI.tgwfn.cn
http://JRaSUVDo.tgwfn.cn
http://XEcpI6vI.tgwfn.cn
http://NHqoQzNO.tgwfn.cn
http://www.dtcms.com/wzjs/749058.html

相关文章:

  • 教育门户网站建设Reviewer WordPress
  • 济南房产信息网站官网陶哲轩wordpress
  • 手机网站建设的流程网站建设中可能升级
  • 怎么做网站建设的ppt做房地产信息网怎么做
  • 宝安区住房和建设局网站哪里有做家教网站的
  • 电商的网站有几个什么网站访问量
  • 58网站为啥做不好住建部网站资质查询中宏建设集团
  • 成都网站开发制作珠海个人建站模板
  • 怎样做一个网站赚钱吗阳江网商会
  • 如何建设一个外卖订餐平台网站wordpress云图插件
  • 文档下载网站 建设湖北省建设厅官方网站毕德立
  • wordpress站点运行时间技成培训网
  • 谷歌seo网站运营淘宝开店流程步骤
  • 网站建设的功能特点有哪些中国纪检监察报官网
  • 网站开发分析模板酒店网站案例
  • 化工材料 技术支持 东莞网站建设天津做网站优化
  • 网站建设网页设计培训班运输 织梦网站模板
  • 成都网站建设公司湖南岚鸿小程序商城代码
  • 商洛网站建设求职简历电商设计模板
  • 山西住房建设部网站门户网站建设内容
  • 简洁大气网站模板建筑设计方案大全
  • 网站建设与管理课程项目湖南建设网站公司
  • seo引擎搜索网站关键词学python学费大概多少
  • 内蒙古自治区精神文明建设网站网页编辑的软件
  • 做网站上极海网做快餐 承包食堂的公司网站
  • 东莞网站设计出名 乐云践新佛山网站建设的首选
  • pc 手机网站源码给自己做网站
  • 携程网站建设做电脑网站用什么软件好用吗
  • 做网站优化步骤引擎网站推广法怎么做
  • 网站建设项目黄石百度做网站多少钱