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分区分配策略

?如下图,有两个主题,每个主题有3个分区,两个消费者组,组1有两个消费者A和B,并且都订阅了T1,但是B同时还订阅了T2,而组2有一个消费者,只订阅了T1,所以这里就有分区的分配策略问题了

kafka的分区分配策略有两种:roundrobin和range

如果使用roundrobin,也就是以消费者组为中心,把消费者组里所有的消费者订阅的主题作为一个整体轮询的发送给消费者组里的消费者进行消费,也就是说总共有6个分区,轮询的发送给Group1,这就有一个问题,即:A并没有订阅T2,但是T2的消息就有可能被A消费到

所以采用range的策略,这也是kafka默认的策略,以主题为中心,比如T1有3个分区,group1有两个消费者,那么使用3/2,除不尽,那就有一个消费者多消费一个,即:P0,P1给A消费,P2给B消费,但这样同样有个问题,A没有订阅T2,只有B订阅了,那么T2的消息会发送给A消费吗,答案是否定的,T2的3个分区全部由B来消费?

所以range的策略是主题先是看哪个消费者订阅了它,然后才考虑消费者组,比如T1发现A,B和C都订阅了它,但是又发现A,B是一个组,所以对A,B采用除2的分配策略,而C只有它自己订阅了,所以T1的就都给C,但是range策略有个问题是分配不均衡的问题,比如现在P0,和P1都分配给了A,P2分配给了B,如果Group1订阅的主题很多,那么A消费的分区要比B消费的多很多

但是RoundRobin是先看组,它先拿到一个组,看这个组里的消费者都订阅了哪些主题,把这些主题包括在一个大圈子里,轮询的发送给这个组里的消费者,也不管某个消费者有没有订阅该主题,只要你在这个消费者组里,就会发送给你,所以这是一个问题,所以使用轮询分配策略的前提是一个消费者组里所有的消费者订阅的主题都是一样的,可以订阅多个主题,但是要订阅某个主题,所有的消费者都得订阅

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:07:06  更:2021-08-30 12:09:33 
 
开发: 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年11日历 -2024/11/23 16:48:22-

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