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

公益网站建设方案泰州seo外包公司

公益网站建设方案,泰州seo外包公司,物流网络名词解释,广州建站模板平台1. Kafka消息消费流程 kafka的消费流程,首先是producer生产消息经过处理后放入到Broker服务器中,然后进入到内存中,内存再进行刷盘到磁盘中,kafak提供了两种刷盘策略,同步刷盘(flush.message 一次IO刷盘多少消息)和异…

1. Kafka消息消费流程

kafka的消费流程,首先是producer生产消息经过处理后放入到Broker服务器中,然后进入到内存中,内存再进行刷盘到磁盘中,kafak提供了两种刷盘策略,同步刷盘(flush.message 一次IO刷盘多少消息)和异步刷盘(flush.ms多长时间刷盘一次)

 随后,消费者首先建立连接到网卡,到Broker服务器中获取消息,Broker调用sendFile函数进行零拷贝,将磁盘中的数据首先由DMA拷贝到内核态,进而零拷贝到网卡中,最后消费端还要维护一个Offset记录一下消息消费的位置,更新消费进度。

2. Offset的维护

Offset由上面我们了解到主要就是消费端消费消息的一个标记值,那么究竟是怎么存储的呢?值又是怎么更新的呢?

2.1 存储Offset信息

Offset是用于记录消费组中消费者的位置

__consumer_offsets(Topic)存储结构

__consumer_offsets中主要存储两种对象: groupMetadata(消费者信息、消费者编号 从这里知道消费者是消费哪个组的)、OffsetAndMetadata(分区以及offset)

2.2 找不到Offset

比如我们新加了一个消费者,这个消费者跟之前的Broker都没有建立连接,那么我们Broker中的Topic的Partion没有Offset记录怎么办?消费者从哪里开始消费?

在消费者中的API提供了一个参数的几种配置

auto.offset.reset=latest (默认值)消费最新的,不去消费历史记录
auto.offset.reset=earliest 消费最早的,可消费历史信息
auto.offset.reset=none 消费者组在服务端找不到 offset ,则报错

 2.3 更新Offset值

消费者的Offset是储存在Broker中的,由消费者上报给Broker

提交Offset的方式分为两种方式

  • enable.auto.commit=true  自动提交
    • auto.commit.interval.ms=5000 (默认值5秒钟)自动提交的频率
  • enable.auto.commit=false 手动提交 
    consumer.commitSync() 手动同步提交
    consumer.commitAsync() 手动异步提交

 Offset若不提交或提交失败,Broker的Offset就不会更新,消息会被重复消费

3. 消费者消费策略

我们从博客MQ之初识kafka-CSDN博客中已经了解到了有一个消费者组的概念,kafka中使用消费者组,主要是为了提升消费效率和吞吐量。同一个Group中的消费者,不能消费想通过的Partition

 从上图中,我们可以看出,消费者组中的消费者数量是不一定的,在topic中分区partition的数量也是不确定的,那么究竟采取怎样的策略去进行消费的呢?

3.1 范围策略

范围策略就是按范围连续分配,如下图所示,假如我们的消费者组订阅的主题中有5个分区,但是消费者只有两个,那么就会对消费者进行一个简单的排序,在前面的就多消费一个

3.2 轮询策略

轮询策略就是消费者排好序后你一个我一个

4. ReBalance分区再平衡机制

分区再平衡本质上是一种协议,用来管理Consumer与Partition的匹配关系

那么何时会发生Rebalance呢?

  • 消费者组的消费者数量发生变化
  • Topic的分区数发生变更

那么ReBlance是谁来执行的呢?执行流程又是怎么样的呢? kafka中提供了一个协调者Coordinator机制进行协调,具体执行流程如下:

  • Broker集群中的各个服务器会先初始化一个GroupCoordinator服务
  • Consumer Group中的每个消费者也会初始化一个consumerCoordinator属性
  • 在集群中找到一个话事人,具体计算公式是 partitionId=Math.abs(groupId.hashCode() % offsetsTopicPartitionCount) 计算出分区后,然后这个分区对应的leader所在的broker就是话事人
  • 之后消费者开始到话事人处进行签到,让话事人知道有几个消费者
  • 这个协调者会在消费者中选一个组长出来
  • 这个组长上报一个partition的分配方案
  • 由协调者最后通知各个消费者的这个分区方案

整体流程图如下:

5. 总结

        本文主要讲了消费者消费消息的流程,使用offset保证消息消费的正确性,以及offset的存储,offset如果找不到的话的策略配置,还有offset的更新。随后又介绍了消费者组中的消费者和主题中的分区之间的消费策略,最后当消费者数量发生变化,或者分区增加的情况下,kafka采用分区再平衡机制进行维护,利用Coordinator协调者机制,来维护分区和消费者数量的一个平衡。

http://www.dtcms.com/wzjs/155100.html

相关文章:

  • wordpress海外建站欧美网站建设公司
  • 电商网站有哪些平台兰州网络seo公司
  • 网站建设管理工作的总结网络推广公司口碑
  • wordpress企业培训seo技术培训价格表
  • 网站关键词排名如何提升全网推广平台推荐
  • 网络科技网站有哪些方面深圳网络推广工资
  • 如何管理wordpress网站模板下载百度官方官网
  • 物流网站建设策划书的总结小红书推广怎么做
  • wordpress主题添加目录百度视频seo
  • 青海响应式网站建设优化网站建设seo
  • 天津市网站制作 公司网站建设
  • 响应式网站建设品牌全网天下品牌营销经典案例
  • 龙华做棋牌网站建设哪家好怎么把网站排名到百度前三名
  • 邯郸做网站网络公司百度业务员联系电话
  • 网站建设快照优化百度竞价优化软件
  • 南昌做网站哪家好开封网络推广哪家好
  • 西宁网站开发成都计算机培训机构排名前十
  • 江苏网站开发建设多少钱百度代理公司怎么样
  • 网站整套模板临沂网站建设优化
  • 加盟的网站建设国家职业技能培训官网
  • 农产品网站管理员怎么做推广策划书模板范文
  • 学做电影网站短视频培训要多少学费
  • 做合法的海外购网站需要什么手续360推广登录入口
  • 自己做网站哪里最好郑州见效果付费优化公司
  • 卖汽车配件怎么做网站郑州网站优化平台
  • 免费稳定网站空间推广普通话手抄报文字
  • 长春网站排名优化费用seo方式包括
  • 怎么做二维码进网站网站建设是干什么的
  • 建立网站原理网站app开发公司
  • 政府网站如何管理系统提高工作效率的重要性