前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kafka分区数过多引发的弊端

kafka分区数过多引发的弊端

作者头像
一条老狗
发布于 2020-01-14 08:05:01
发布于 2020-01-14 08:05:01
5.9K0
举报
文章被收录于专栏:极客运维极客运维

上篇文章我们了解到,如果一个topic分区越多,理论上整个集群所能达到的吞吐量就越大。那么,分区数越多就越好吗?显然不是。今天我们来聊下kafka在分区数过多的情况下,会带来哪些弊端。

内存开销

客户端producer有个参数batch.size默认为 16KB。它会为每个分区缓存消息,一旦批次数满了后,将消息批量发出。一般来说,这个设计是用于提升吞吐性能的。但是由于这个参数是partition级别的,如果分区数越多,这部分缓存所需的内存占用也会越多。

假如有 10000 个分区,按照默认配置,这部分缓存就要占用约 157MB 的内存。而consumer端呢?抛开拉取数据所需的内存不说,单说线程的开销。如果还是 10000 个分区,同时consumer线程数要匹配分区数的话(大部分情况下是最佳的消费吞吐量配置),那么在consumer client就要创建 10000 个线程,也需要创建大约 10000 个Socket去获取分区数据,这里面的线程切换的开销本身就已经不容小觑了。

服务器端的开销也不小,如果阅读kafka源码的话就会发现,服务器端的很多组件在内存中维护了partition级别的缓存,比如controllerFetcherManager等,因此分区数越多,这种缓存的成本就越大。

文件句柄开销

每个分区在文件系统上会对应一个目录,用于存储维护kafka数据日志。该目录通常会有 3 个文件,.log.index.timeindex,对应kafka日志数据文件和索引文件(老版本 kafka 没有timeindex文件)。broker会一直保持打开这 3 个文件句柄(file handler)。因此,如果分区数越多,所需要保持打开状态的文件句柄数也就越多,最终可能会突破单台brokerulimit -n的上限。

链路延迟

kafka的链路延迟也就是producer端发布消息到consumer端接收消息所需要的时间。kafka只有在消息提交之后,才会将消息暴露给消费者,期间消息需要在in-sync副本列表中完成同步复制,这是耗时的主要部分。默认情况下,每个broker从其他broker节点进行数据副本同步时,该节点只会为此分配一个线程,该线程需要完成该broker上所有partition数据的复制。我查到数据显示,将 1000 个partition从一个broker到另一个broker所需时间延迟约为 20ms,这意味着链路延迟至少是 20ms。这样的延迟对于一些实时业务来说可能就有些长了。

SLA

kafka是通过副本机制(replica)提供高可用,来保障SLA的。每个partition都会有多个副本,每个副本分别存在于不同的broker。所有的数据副本中,有一个数据副本被选举为leader,负责处理producerconsumer请求。其他的数据副本为follower,由Kafka controller负责保证与leader的同步。

leader不可用时,会从follower中重新选出新的leader,这中间会有短暂的不可用时间,虽然大部分情况下可能只是几毫秒级别。但是假如,一个 2 节点的kafka集群中存在 2000 个partition,每个partition拥有 2 个副本。当其中一个broker意外宕机,所有 1000 个partition同时变得不可用。假设每一个partition恢复时间是 5ms,那么 1000 个partition的恢复时间将会花费 5 秒钟,这可能对用户来说就会有一个明显的感知了。如果宕机的是controller节点,不可用时间将会更严重。

上述问题,通常情况下,都可以通过扩容集群来缓解,毕竟在不考虑成本的情况下,堆机器可以解决 90%的问题。当然正常情况,还是得在合理的成本范围内,进行合理的规划和调优,上述弊端一般都是能在可控范围内的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
ENVI 5.6中文版下载及安装,ENVI遥感图像分析软件功能介绍
Envi软件是一款功能强大、广泛应用于遥感图像处理和分析领域的软件。Envi软件包含多种独特功能,这些功能可以帮助用户更好地进行遥感图像处理和分析工作。在本文中,我们将通过实际案例,举例说明Envi软件的几个独特功能,并介绍其在实际应用中的价值。
优木软件
2023/05/06
8890
遥感图像处理ENVI软件安装包下载,ENVI 5.6中文版电脑下载安装
ENVI软件是由美国ITT公司开发的一款基于遥感技术的图像处理软件,其具有多种高级遥感图像分析和处理功能,被广泛应用于地球科学、生态环境等领域。本论文将介绍ENVI软件的特色功能和使用方法,并以一个实例来演示ENVI软件的使用流程,包括其数据输入、遥感图像分析和处理等环节的操作步骤。最后,我们将对ENVI软件的优点和不足进行探讨。
用户10413399
2023/04/18
1.2K0
卫星遥感影像处理分析软件ENVI 5.6中文版下载安装,ENVI软件下载
ENVI软件是一款广泛用于遥感影像处理和分析的可视化软件,具有多种功能和工具,如图像增强、特征提取、分类分析等。本文将介绍ENVI软件的主要功能及其应用领域,并通过实际案例进行举例说明,探讨其在遥感领域中的应用价值。
用户10413399
2023/04/14
8750
envi软件是干什么的?ENVI遥感图像处理,ENVI软件下载安装教程
ENVI是一款专业的遥感图像分析软件,可以帮助我们对卫星遥感图像进行各种复杂的分析和处理。如果你是一名遥感工作者或者需要处理遥感图像,那么ENVI将是你的不二选择。
用户10436734
2023/03/31
1.5K0
envi软件是干什么的?ENVI遥感图像处理,ENVI软件下载安装教程
【卫星遥感图像处理】ENVI 软件安装包下载及安装激活
ENVI 是一种专业的遥感影像处理软件,能够处理不同分辨率的遥感影像数据,并提供高级的遥感分析工具。该软件广泛应用于农业、林业、水资源、城市规划、环境监测等领域,为用户提供了高效、准确的遥感影像处理和分析服务。本文将从软件的独特竞争力和使用方法两个方面进行详细讨论,并结合实际案例进行说明。
用户10413399
2023/04/22
7350
ENVI软件下载,遥感数据分析软件ENVI 5.6激活版电脑下载安装教程
遥感技术是一种快速发展的科技领域,具有广泛的应用前景。随着卫星技术和遥感数据采集技术的不断发展,遥感数据的处理变得越来越重要。ENVI软件作为一款专业的遥感数据处理软件,提供了丰富的功能和高效的处理能力,可以有效提高遥感数据处理效率,使处理结果更加准确可靠。本文将从软件的功能与应用入手,详细介绍ENVI软件在遥感数据处理中的应用。
用户10436734
2023/04/13
1.4K0
【专业卫星遥感图像分析】ENVI软件中文版下载安装,ENVI功能介绍
ENVI软件是一款专业的遥感图像处理软件,它可以帮助用户分析和解释从航空器、卫星和无人机等传感器获得的遥感数据。ENVI软件提供了许多独特的功能,以帮助用户更好地理解数据。在本文中,我将结合实际案例,讲解ENVI软件的几大独特功能。
优木软件
2023/05/05
1K0
卫星遥感数据分析 ENVI 软件安装包下载,ENVI安装激活
遥感技术已成为研究和了解地球表面和大气的重要工具。ENVI软件是一款领先的软件包,为专业人员提供分析和处理遥感数据所需的必要工具。ENVI软件已被广泛应用于农业、地质、林业和城市规划等各个领域。本文将探索ENVI软件的特点和使用方法,并提供一个具体的使用案例,演示如何使用ENVI软件进行遥感数据分析。
用户10436734
2023/04/20
6370
卫星遥感图像处理工具 ENVI软件5.6中文版下载安装
ENVI是一款专业的遥感图像处理软件,已经成为了遥感图像处理领域最为流行和实用的软件之一。它具有非常强大的图像处理、数据分析以及图像可视化等功能,同时还支持多种格式的遥感图像数据导入和导出,可以满足用户对遥感数据处理和分析的各种需求。本文将对ENVI的主要功能和使用技巧进行介绍,并结合实际案例进行详细说明。
优木软件
2023/04/24
1K0
ENVI遥感影像预处理与大气校正算法对比
本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以预处理与多种不同大气校正方法的操作。
疯狂学习GIS
2025/04/30
2460
ENVI遥感影像预处理与大气校正算法对比
ENVI软件中文版下载安装,遥感图像处理ENVI软件下载
ENVI软件是一款广泛应用于遥感图像处理的软件,本文首先介绍了ENVI软件的基本功能和应用领域,并详细讲述了如何进行ENVI软件的安装和配置;随后围绕着ENVI软件的图像预处理、分类和变换方面进行了详细介绍,并通过实际案例演示以及对结果的评估,验证了ENVI软件的实用性和强大功能。
用户10410624
2023/04/27
1.1K0
AI+遥感智能解译,赋能智慧城市规划革新
在新型城市建设和规划中,以卫星遥感图像处理为代表的地理信息技术正在发挥非常重要的作用,通过对城市范围内的人、事件、基础设施和环境等要素全面感知、实时动态识别和快速目标提取,为智慧城市的建设提供更多有价值的信息。当前,基于人工智能的遥感图像处理技术已被广泛地应用在城市规划、违章建筑监管、工程环境监测、废弃物管理、交通治理、城市安防等场景。
郭好奇同学
2022/04/12
1.1K0
AI+遥感智能解译,赋能智慧城市规划革新
最新ENVI遥感图像处理工作站集群硬件配置推荐
ENVI 是图像处理和分析软件的行业标准。图像分析师、GIS专业人员和科学家使用它从地理空间图像中提取及时、可靠和准确的信息。
wdf8088
2022/03/22
2.3K0
ENVI软件是干什么的?卫星遥感数据分析ENVI软件下载
随着卫星遥感技术的不断发展,大量的遥感数据被获取并广泛应用于资源调查、环境监测、灾害评估等领域。然而,由于遥感数据复杂多样,处理方式繁琐,因此需要借助专业的遥感数据处理软件来实现数据的分析和应用。ENVI软件作为一款专业的遥感数据处理工具,具有强大的数据处理和分析能力,成为遥感数据处理领域不可替代的工具之一。本文将结合实际案例,介绍ENVI软件在遥感数据处理中的应用和操作方法,并提供实用的技巧和建议。
优木软件
2023/04/28
1.3K0
QGIS文章四——对遥感影像进行土地类型分类
一、按照国家土地性质分类标准,一般分五类:商业用地、综合用地、住宅用地、工业用地和其他用地。
python与大数据分析
2023/10/06
3.2K0
QGIS文章四——对遥感影像进行土地类型分类
ENVI实现Landsat大气校正法地表温度反演
本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以大气校正方法的地表温度反演操作。
疯狂学习GIS
2025/05/08
1950
ENVI实现Landsat大气校正法地表温度反演
覆盖5大任务,30+特色模型,高性能、全流程开发套件PaddleRS助力遥感影像智能解译化繁为简
近年来,随着卫星技术的发展和深度学习的火热,基于深度学习的遥感影像智能解译得到了前所未有的关注,并已成功应用于建筑物变化检测、SAR影像船舶检测、道路提取、多光谱影像分类等任务中。高精度、高速度、自动化的特点为其带来广阔的发展前景。
用户1386409
2022/11/29
1.3K0
覆盖5大任务,30+特色模型,高性能、全流程开发套件PaddleRS助力遥感影像智能解译化繁为简
遥感学习武林秘籍分享
本期分享的内容,为一本厚度为235页的学习资料。内容包括高光谱遥感、高分辨率影像处理、计算智能及其在遥感影像处理中的应用、影像处理工程、遥感应用和模式分析与机器学习等。很适合遥感领域的学生学者去学习和加深对遥感领域的理解,资料供分为18章节,每一章都值得研究和学习,章节内容包括研究概述、研究意义、应用、已取得的成、发展前景和入门资料的推荐等。该学习资料本人强烈推荐学习,希望能够本次料能够开阔你的事业并激发你的学习兴趣。(资料为张良培团队(张良培、钟燕飞、沈焕锋、黄昕、罗斌、夏桂松、杜博、张洪艳、袁强强和张乐飞等)在其主页上公布的主要研究方向介绍。)
遥感大数据学习
2022/09/20
7170
《深度揭秘:生成对抗网络如何重塑遥感图像分析精度》
在当今数字化时代,遥感图像作为获取地球表面信息的重要数据源,广泛应用于城市规划、农业监测、环境评估等诸多领域。然而,如何从海量的遥感数据中提取高精度的信息,一直是学术界和工业界共同面临的挑战。生成对抗网络(GAN)的出现,为提升人工智能在遥感图像分析中的精度开辟了全新的路径。
程序员阿伟
2025/02/27
1240
MATLAB R2023a中文版下载安装,专业数学计算软件MATLAB使用介绍
MATLAB是一款被广泛应用于科学计算、数据分析和工程设计等领域的软件。它具有强大的数学计算能力,支持矩阵运算、曲线拟合、图像处理、信号处理等功能。在本文中,我们将通过举例的方式介绍MATLAB的特色功能和使用方法。
用户10410624
2023/05/02
6780
推荐阅读
相关推荐
ENVI 5.6中文版下载及安装,ENVI遥感图像分析软件功能介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档