3.3.1 消费方式

consumer采用pull(拉)模式从broker中读取数据。

  cpush(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由broker决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成consumer来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而pull模式则可以根据consumer的消费能力以适当的速率消费消息。

  pull模式不足之处是,如果kafka没有数据,消费者可能会陷入循环中,一直返回空数据。针对这一点,Kafka的消费者在消费数据时会传入一个时长参数timeout,如果当前没有数据可供消费,consumer会等待一段时间之后再返回,这段时长即为timeout。

3.3.2 分区分配策略

首先kafka设定了默认的消费逻辑:一个分区只能被同一个消费者组(ConsumerGroup)内的一个消费者消费。

  一个consumer group中有多个consumer,一个 topic有多个partition,所以必然会涉及到partition的分配问题,即确定那个partition由哪个consumer来消费。

  Kafka有三种分配策略,一是Roundrobin,一是Range,还有一个是Stick。

默认情况下:Range策略

  在Range策略情况下,该策略是对于一个Topic而言的一个策略。
  首先对同一个Topic里面的分区按照序号进行排序,冰队消费者按照字母进行排序。然后用Partitions分区的个数除以消费者的消费者线程总数来决定每个消费者消费几个分区,如果除不尽,则前面的几个消费者线程会多消费一个分区。

RoundRobin
  前提:同一个Consumer Group,每个消费者订阅的主题必须相等
  在RoundRobin策略下,分区的数据是以轮询的方式进行分配分配到消费者

Stick策略
  Sticky分配策略,这种分配策略是在kafka的0.11.X版本才开始引入的,是目前最复杂也是最优秀的分配策略。

 &emspSticky分配策略的原理比较复杂,它的设计主要实现了两个目的:(1)分区的分配要尽可能的均匀;(2)分区的分配尽可能的与上次分配的保持相同。

  根据者这两个目的,首先该策略采用RoundRobin的方式进行轮询的分配分配给消费者消费,如过在某一个过程中消费者挂了,那么这个消费者消费的分区就会被拿出来再根据RoundRobin策略分配给健康的消费者,已到达尽可能均匀并且不进行重新分配所有分区以此实现分区的分配尽可能的与上次分配的保持相同。

如图:C2消费者宕机前:

如图:C2消费者宕机后:

浅谈大数据里的Kafka (9)Kafka的消费方式和消费策略相关推荐

  1. 张晓波:浅谈大数据应用的知与行|V课堂第82期

    2017年8月26日,<中国大数据应用蓝皮书>的发布引起了大数据领域的政产学界领导.顶尖学者的强烈关注.在全球化的新阶段,面对互联的新世界,大数据如何不断创造新模式.新生态和新时代? 第8 ...

  2. 浅谈大数据的标签管理

    最近参与了一个大数据的项目,是涉及标签管理方面的内容,使我这个初涉入大数据领域的人获益匪浅. 标签,也可以叫做Tag,最早出现于2005年(注1),随着Web2.0的Blog应用被广泛使用开来.标签也 ...

  3. 浅谈大数据:如何成为大数据企业?

    文章讲的是 浅谈大数据:如何成为大数据企业, 1.什么叫大数据? "大数据"是"数据化"趋势下的必然产物!数据化最核心的理念是:"一切都被记录,一切都 ...

  4. 大数据审计的发展_浅谈大数据时代下审计工作的发展方向

    浅谈大数据时代下审计工作的发展方向 李寒梅 [摘 要] [ 摘 要 ] 随着信息化水平不断提升,企业的审计工作需要处理海量的数 据,而利用常规软件难以对海量数据进行处理,这就需要应用大数据技术.审 计 ...

  5. 浅谈大数据中的 2PC、3PC、Paxos、Raft、ZAB

    一致性 简述 一致性,是指对每个节点一个数据的更新,整个集群都知道更新,并且是一致的.假设一个具有N个节点的分布式系统,当其满足以下条件时,我们说这个系统满足一致性: 全认同: 所有N个节点都认同一个 ...

  6. 浅谈大数据专业的就业前景

    近几年来,大数据这个词突然变得很火,不仅纳入阿里巴巴.谷歌等 互联网公司的战略规划中,同时也在我国国务院和其他国家的政府报告中多次提及,大数据无疑成为当今互联网世界中的新宠儿. 而近期朋友圈疯转的&q ...

  7. 浅谈大数据任务调度平台

    谈到大数据,避免不了hadoop, hive, spark 这些基础套件,但是在整个大数据开发的时候,我们面对的基本上都是数据开发平台和任务调度系统.数据开发平台一般直接面对业务同学,很大程度上影响业 ...

  8. 浅谈大数据风控平台的功能需求

    导读:大数据风控业务的开展依赖智能风控平台,智能风控平台的技术基础是大数据技术,智能风控系统技术架构也是以大数据系统技术架构为基础演进而来的. 智能风控系统技术架构主要分为访问层.展现层.系统层.大数 ...

  9. 浅谈大数据风控的基本框架

    本文转载自 CreditX氪信,作者 唐正阳 近日,中国人民银行成立金融科技(FinTech)委员会,旨在加强金融科技工作的研究规划和统筹协调. 随着AI.云计算在金融业务层面的快速渗透,也倒逼监管跟 ...

最新文章

  1. CentOS YUM / RPM Error Signature Key ID BAD
  2. Adobe illustrator 设置字体和微调 - 连载 10
  3. SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(1)-数学原理
  4. 自由在博客里插入广告,有钱你不赚吗???
  5. 3.9-分区表fstab
  6. Hive最全学习笔记总结
  7. Javascript实践-Function对象扩展之延时执行函数
  8. unity 裙子摆动_随风摆动的草丛——Unity shader graph 2D初探
  9. 文心一言——何妨吟啸且徐行
  10. 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式
  11. ubuntu 使用 OneNote
  12. Banner本地,网络,图片轮播
  13. 深入理解synchronized
  14. 中国智慧家庭市场运营模式分析及发展趋势研究报告2022-2027年版
  15. 什么是深拷贝和浅拷贝,如何进行浅拷贝?
  16. RTX之——时间管理
  17. 示波器电源测试交流耦合的陷阱
  18. yasm/nasm not found or too old. Use --disable-yasm for a crippled build.
  19. 当程序员遇到会写代码的产品经理......
  20. 怎么用Linux下载链接,在linux系统里,下载的迅雷专用链接!

热门文章

  1. MOSES的高级特征和功能
  2. SIM7600模块固件升级(模块自身升级)
  3. 《 ERP高级计划》书的解读之零物料约束和能力约束逻辑(蔡颖)(转)
  4. spring tx:advice事务配置
  5. 什么叫做私有网络VPC?
  6. java版捕鱼达人----完整版补充
  7. NASA锂电池容量增量数据处理
  8. Mac终端自动补全及常用命令
  9. 2017年美国50家最顶尖的初创公司排行榜
  10. php 修改word内容,php如何替换word内容