IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> kafka消费者 -> 正文阅读

[大数据]kafka消费者

一、消费方式

kafka的消费者采用拉取的方式从队列中获取消息,因为推送的方式消息发送的速率是由消费者端决定的,其很难匹配消费者端的速率。有的消费者端速率很慢不能全部接收到队列中所推送的消息,有的消费者端速率很快则会造成资源的浪费。但是消费者拉取消息的方式也存在缺点,就是需要维护一个长时间的轮询,消费者一消费完消息后便需要不断地询问队列中是否有新的消息,这样对资源也是一种浪费。Kafka中有一种时间的机制,即消费者查询过一次后没有新的消息的话就会间隔一段时间再去询问,这个时间的长度是由时长参数 timeout决定的。(pull 模式不足之处是,如果 kafka 没有数据,消费者可能会陷入循环中, 一直返回空数据。 针对这一点, Kafka 的消费者在消费数据时会传入一个时长参数 timeout,如果当前没有数据可供消费, consumer 会等待一段时间之后再返回,这段时长即为 timeout。)

二、分区分配策略

一个Topic有多个partition,一个消费者组有多个消费者,这样就涉及到分区分配,即决定哪个消费者消费哪个partition。kafka有两种分配策略一是 RoundRobin,一是 Range。

RoundRobin:该分配策略就是将一个消费者组里面所有消费者订阅的topic看成一个整体,然后按照不同topic的不同partition按照轮询的方式分配给每个消费者,这样虽然会使每个消费者消费的消息数量基本一致,但是在将所有topic看成一个整体后,有可能会将没有订阅某个topic的消费者消费了该topic某个分区的消息,使用该策略应该是消费者组里面所有的消费者订阅的topic都一样的时候。

Range:该分配策略是按照topic来分的,订阅了同一个Topic的消费者依次去取,这样会造成每个消费者消费消息的数量不一样。kafka默认采用该种方式取队列中的消息。

什么时候会触发该分配策略?

当消费者数量发生变化时,都会触发分配策略重新分配。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:53:03  更:2021-08-02 10:54:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 21:54:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码