kafka topic分区数设定

Kafka中的Partition详解与示例代码 本文详细介绍了Kafka中的Partition概念,从创建、配置、内部工作原理到实际应用示例和性能调优等多个方面进行了深入的讨论。希望这些详细的示例代码和解释能够帮助大家更全面地理解和应用Kafka中的Partition。在实际应用中,根据业务需求和系统规模,可以灵活配置Partition以达到最佳性能和可靠性。 阅读详情

  • 创建一个 1副本1分区的topic

kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 
  • 对这个topic生产吞吐量测试

# 生产者吞吐量测试工具
kafka-producer-perf-test.sh  # 生产者测试
--topic test # topic
--num-records 300000 # 总共300000条数据 
--record-size 1000 # 每条1000字节,约1kb
--throughput 100000 # 每次发送100000条记录
--producer-props bootstrap.servers=localhost:9092 # 指定服务
​

[root@dream1 ~]# kafka-producer-perf-test.sh --num-records 300000 --record-size 1000 --topic test --throughput 100000 --producer-props bootstrap.servers=localhost:9092
160273 records sent, 32016.2 records/sec (30.53 MB/sec), 660.6 ms avg latency, 1107.0 ms max latency.
126080 records sent, 25100.5 records/sec (23.94 MB/sec), 1261.6 ms avg latency, 1945.0 ms max latency.
300000 records sent, 28097.780275 records/sec (26.80 MB/sec), 940.64 ms avg latency, 1945.00 ms max latency, 911 ms 50th, 1606 ms 95th, 1883 ms 99th, 1938 ms 99.9th.
# 测试结果:30.53 23.94 26.80
​
​
​
[root@dream1 ~]# kafka-producer-perf-test.sh --num-records 300000 --record-size 1000 --topic test --throughput 50000 --producer-props bootstrap.servers=localhost:9092  
151761 records sent, 30352.2 records/sec (28.95 MB/sec), 632.4 ms avg latency, 1495.0 ms max latency.
133584 records sent, 26716.8 records/sec (25.48 MB/sec), 1322.6 ms avg latency, 1696.0 ms max latency.
300000 records sent, 29571.217348 records/sec (28.20 MB/sec), 934.69 ms avg latency, 1696.00 ms max latency, 957 ms 50th, 1589 ms 95th, 1650 ms 99th, 1692 ms 99.9th.
# 测试结果:28.95 25.48 28.20
​
​
​
[root@dream1 ~]# kafka-producer-perf-test.sh --num-records 300000 --record-size 1000 --topic test --throughput 70000 --producer-props bootstrap.servers=localhost:9092 
167185 records sent, 33437.0 records/sec (31.89 MB/sec), 585.8 ms avg latency, 1241.0 ms max latency.
300000 records sent, 35756.853397 records/sec (34.10 MB/sec), 712.25 ms avg latency, 1318.00 ms max latency, 785 ms 50th, 1202 ms 95th, 1310 ms 99th, 1317 ms 99.9th.
# 测试结果:31.89 34.10   前后对比可以得知,每次发送70000条记录时效率最高,此时吞吐量 70000*1KB/s 70MB/s
​
​
​
[root@dream1 ~]# kafka-producer-perf-test.sh --num-records 300000 --record-size 1000 --topic test --throughput 80000 --producer-props bootstrap.servers=localhost:9092 
154609 records sent, 30500.9 records/sec (29.09 MB/sec), 615.7 ms avg latency, 1852.0 ms max latency.
300000 records sent, 35545.023697 records/sec (33.90 MB/sec), 773.73 ms avg latency, 1878.00 ms max latency, 632 ms 50th, 1521 ms 95th, 1869 ms 99th, 1874 ms 99.9th.
# 测试结果:29.09 33.90
  • 对这个topic消费吞吐量测试

# 消费者吞吐量测试工具
kafka-consumer-perf-test.sh # 消费者测试
--topic test # topic
--broker-list localhost:9092 # broker 
--messages 300000 # 总共消费多少数据300000
--threads 6 # 6个线程消费

​
[root@dream1 ~]# kafka-consumer-perf-test.sh --topic test --broker-list localhost:9092 --messages 300000 --threads 1
WARNING: option [threads] and [num-fetch-threads] have been deprecated and will be ignored by the test
start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2024-01-11 09:56:52:402, 2024-01-11 09:56:55:365, 286.1099, 96.5609, 300008, 101251.4344, 817, 2146, 133.3224, 139798.6952
[root@dream1 ~]# kafka-consumer-perf-test.sh --topic test --broker-list localhost:9092 --messages 300000 --threads 3
WARNING: option [threads] and [num-fetch-threads] have been deprecated and will be ignored by the test
start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2024-01-11 09:57:00:232, 2024-01-11 09:57:03:485, 286.1099, 100.9526, 300008, 92225.0231, 626, 2627, 108.9113, 114201.7510
[root@dream1 ~]# kafka-consumer-perf-test.sh --topic test --broker-list localhost:9092 --messages 300000 --threads 10
WARNING: option [threads] and [num-fetch-threads] have been deprecated and will be ignored by the test
start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2024-01-11 09:57:39:562, 2024-01-11 09:57:42:293, 286.1099, 104.7638, 300008, 109852.8012, 619, 2112, 135.4687, 142049.2424
[root@dream1 ~]# kafka-consumer-perf-test.sh --topic test --broker-list localhost:9092 --messages 300000 --threads 15
WARNING: option [threads] and [num-fetch-threads] have been deprecated and will be ignored by the test
start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2024-01-11 09:57:52:771, 2024-01-11 09:57:55:798, 286.1099, 94.5193, 300008, 99110.6706, 579, 2448, 116.8750, 122552.287
​
# 消费者测试的时候只需调整 thread 对MB.sec取平均即可,我的测试结果大约100M

  • 计算分区数

  • 然后假设总的目标吞吐量是Tt,那么分区数=Tt / min(Tp,Tc)

  • 例如:producer吞吐量 = 70m/s;consumer吞吐量 =100m/s,期望吞吐量 300m/s;

  • 分区数 = 300 / 70 = 4或者5个分区

Kafka Topic创建避坑指南:从命令行到AdminClient的实战踩坑记录 本文是一份详尽的Kafka Topic创建实战避坑指南。针对从命令行到AdminClient API再到云平台控制台的创建方式,深入剖析了分区数、副本因子、关键配置(如min.insync.replicas)等核心参数的设置陷阱与最佳实践,并提供了生产环境检查清单,帮助开发者和运维人员规避常见问题,确保集群稳定与数据可靠。 阅读详情

相关推荐

Kafka的分区数设置

合理设置分区数可以确保系统能够充分利用集群的吞吐能力,并提供良好的负载均衡和故障容错能力。总之,Kafka的分区数设置对于系统的性能和可伸缩性起着重要的作用。合理的分区数设置可以充分利用集群资源,提高吞吐量和负载均衡,并确保数据的高可用性和容错性。通过Kafka提供的命令行工具或者Kafka的客户端API,可以指定主题的分区数。除了创建主题时设置分区数外,还可以通过修改Kafka的配置文件来调整分区数。在实际应用中,可以根据实验和性能测试结果来调整分区数和副本因子,以找到最佳的配置参数。

WdzDevops的博客 1092

Kafka:合理设置分区数

Kafka:合理设置分区数

程序员无羡的博客 3767

Kafka topic分区设置不合理导致磁盘写入不均衡

背景: 我给kafka准备了6块盘,但是每次都是其中两块磁盘满了,导致kafka挂掉,本着一劳永逸的原则,今天一定要查到原因在哪里? 我得kafka配置,我有3个主机broker01,broker02,broker03,存储配置如下: log.dirs=/chunk04/kafka/logs,/chunk05/kafka/logs,/chunk06/kafka/logs,/chunk0...

激流丶的博客 5994

kafka分区数如何设置_数据不撒谎,Flink-Kafka性能压测全记录

本文作者来自本号的粉丝:林夕_Yume,作者微信:wxid_nvd5wwng4v2i22欢迎大家关注他的简书:https://www.jianshu.com/u/3fa2b243f30d大家有同样需求的同学赶紧加他好友探讨~1.压测方案1.1 压测目的本次性能测试在正式环境下单台服务器上Kafka处理MQ消息能力进行压力测试。测试包括对Kafka写入MQ消息和消费MQ消息进行压力测试,根据不同量级...

weixin_39556702的博客 1578

VisualSFM+MeshLab 三维重建全过程记录

VisualSFM+MeshLab 三维重建全过程记录,从下载到运行出结果,以及其中一些可能出现的小问题。通过这两个软件熟悉一下多目立体视觉重建的流程。

何似莫相逢 3万+

【电弧故障检测算法全解析,电弧串扰问题分析和解决算法】

本文系统分析了电弧故障检测算法及串扰问题解决方案。电弧检测主要采用时频域分析和机器学习方法,通过提取高频噪声、波形畸变等特征实现故障识别。针对电弧串扰问题,提出了自适应滤波、盲源分离和时频联合分析等算法。研究给出了Python和C语言的算法实现示例,包括高频能量检测、过零率计算和陷波滤波器设计。最后指出算法优化方向:实时性提升可采用滑动窗口FFT和硬件加速;抗干扰增强需结合硬件滤波;机器学习扩展可引入随机森林等分类器。该研究为电弧故障检测系统开发提供了完整的技术路线。

syttt的专栏 891

springboot下 kafka 手动创建topic并指定分区(partition)数及分区副本(replica)数

依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> &l.

liao0801_123的博客 1万+

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3707

kafka默认分区数设置

每次创建topic都要修改分区数很麻烦,其实集群配置固定的情况下,完全可以根据集群CPU核数,设置最优的分区数。 例如我的集群部署在虚拟机里,我的笔记本12核cpu,就可以设置默认分区12,以后每次创建topic都是12个分区。 ...

海若_matrix的博客 1万+

用友U8库龄分析避坑指南:物料出入库日期计算的5个常见错误

本文深入剖析了在用友U8系统中进行库龄分析时,物料出入库日期计算的五个常见陷阱。从数据源选择、业务类型过滤、计价方式逻辑、期初数据处理到查询性能优化,逐一解析错误根源并提供避坑指南,帮助企业获得准确的库龄数据,有效管理库存与资金风险。

weixin_29209801的博客 456

c语言面试5(希诺麦田)

在 C 语言中,当使用strlen函数计算字符串的长度时,它会返回字符串中字符的实际个数,不包括字符串结束符’\0’。而sizeof(array)返回的是array指针所占用的字节数,通常在 32 位系统上为 4 个字节,在 64 位系统上为 8 个字节。在给定的代码中,array被初始化为"\0\0",其中包含两个转义字符’\0’。当使用strlen函数计算array的长度时,它会遇到第一个’\0’并停止计数,因此返回的长度为 2。12.下面四个选项是四个整数在内存中的存储情况,其中数值最大的一个是。

Pierce110110的博客 1053

Kafka相关总结

1)Kafka压测 Kafka官方自带压力测试脚本(kafka-consumer-perf-test.sh、kafka-producer-perf-test.sh)。Kafka压测时,可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。 2)Kafka的机器数量 Kafka机器数量=2*(峰值生产速度*副本数/100)+1 3)Kafka的日志保存时...

Faded1573606285的博客 723

从零到精通:ROS2 MoveIt2与MPC机械臂轨迹规划的完整配置流程

本文详细介绍了ROS2 MoveIt2与MPC机械臂轨迹规划的完整配置流程,从环境准备到高级功能扩展,帮助开发者实现精准控制。通过集成模型预测控制(MPC),机械臂能够优化复杂轨迹规划,处理动态避障,提升工业自动化效率。

juice的博客 708

Kafka的学习笔记01

1、Kafka架构 Producer:消息生产者,也就是向Broker发送消息的客户端; Consumer:消息消费者,向Broker消费数据的客户端; Consumer Group(GC):消费者组,也就是由多个消费者组成的。消费者组内的每个消费者负责消费不同分区的数据,一个分区只能由一个组内的消费者消费,消费者组间互不影响; Broker:一台Kafka服务器就是一个Broker,一个集群由多个Broker组成,同时一个Broker由多个Topic组成; Topic:可以理解我一个队列,生产者和消费者面

J1NX1N的博客 240

Vue+OpenLayers6一本通,OpenLayers6完整教程大全,OpenLayers6全知全解,OpenLayers6入门、实战、扩展进阶三合一专栏目录汇总

Gis开发入门,OpenLayers、Leaflet、Maplibre-gl和Cesiumjs地图引擎介绍以及几种地图服务vms、vmts介绍OpenLayers介绍,相比较其他地图引擎有什么优点OpenLayers7.x版本和6.x版本有什么区别,是否需要升级到OpenLayers7版本?OpenLayers6实战:OpenLayers创建自定义控件,以创建一个地图复位控件为例OpenLayers6实战,OpenLayers创建自定义鹰眼控件,自定义鹰眼控件样式,调整鹰眼控件位置、大小、文字和按钮等样式。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 2201

CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测

CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测

6045

kafka监控

编辑文章 监控策略 1、Kafka总体监控 leader 选举频率:kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs 2、Kafka Broker监控 kafka集群中Broker列表,broker运行状况,包括node下线,活跃数量 Broker是否提供服务 失败的生产消息请求数量:阈值? 失败...

cclucc的博客 585

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

快速学习-Kafka入门

第 2 章 Kafka 快速入门 2.1 安装部署 2.1.1 集群规划 hadoop102 hadoop103 hadoop104 zk zk zk kafka kafka kafka 2.1.2 jar 包下载 http://kafka.apache.org/downloads.html 2.1.3 集群部署 1)解压安装包 [atguigu@hadoop102 software]$ ta...

逍遥云恋 577

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

kafka

1 Kafka架构 生产者、Broker、消费者、ZK; 注意:Zookeeper中保存Broker id和消费者offsets等信息,但是没有生产者信息。 2 Kafka的机器数量 Kafka机器数量=2 *(峰值生产速度*副本数/100)+ 1 3 副本数设定 一般我们设置成2个或3个,很多企业设置为2个。 副本的优势:提高可靠性;副本劣势:增加了网络IO传输 4 Kafka压测 Kafka官方自带压力测试脚本(kafka-consumer-perf-test.s...

gggSam的博客 168

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【大数据高频问题】之Kafka

创建多少个Topic 取决于满足多少个消费者 磁盘空间设置多少合适呢(默认保存7天,每天数据量100G,2*100*7/0.7) Kafka ISR,解决了什么问题,(延迟时间,在规定范围内) Kafka 监控, Kafka 里有多少分区 (3-10),分区多少有什么影响,会影响并发 Kafka 分区分配策略 Kafka 丢失数据,ACK, ack=0 (数据发送不等待应答),ack=...

u012430775的专栏 374

Kafka核心概念深度解析:Topic、Partition、Consumer与Consumer Group的关系与实践

在分布式消息系统中,消息队列是实现应用解耦、异步处理和流量削峰的关键组件。其核心原理在于通过生产者-消费者模型,将数据发布到主题(Topic),并由消费者按需拉取处理。Kafka作为高性能分布式消息队列,通过引入分区(Partition)和消费者组(Consumer Group)机制,极大地提升了系统的吞吐量与可扩展性。分区是Topic的物理细分,它不仅是数据存储的单元,更是实现并行处理的基石,决定了系统的最大并发度。消费者组则是一组协同工作的消费者实例,通过组内分区分配与重平衡机制,实现了负载均衡与容错。

weixin_34200628的博客 419

Kafka的Topic分区数如何合理设置?

这里回答不一定准确,因为一般情况下需要考虑部署kafka机器的性能,需要压测出一个稳定数据,通过稳定数据去计算需要的分区数大小,比如TPS超过1万,每条消息10k,就意味着每秒100万k消息,100万k/单个分区稳定数据(比如10万k),这个时候就需要10个分区,然后搭配消费者负载均衡,设置12个分区。这里建议使用acks=1,至少保证一个副本有同步,除非是日志消息之类的,可以考虑ack=0,不然容灾能力会很差。分区数决定最大消费者并行度,建议设置为消费者组内消费者数量的整数倍。

weixin_45762066的博客 2589

kafka修改Topic副本数和分区数

一 .修改Kafka Topic副本数 1.bin/kafka-topics.sh --zookeeper 172.18.163.203:2181,172.18.163.204:2181,172.18.163.205:2181 --create --partitions 5 --replication-factor 3 --topic test01 ##新建测试topic test01...

DreamWeaver_Zhou 1万+

kafka 修改分区_kafka修改Topic副本数和分区数

一 .修改Kafka Topic副本数1.bin/kafka-topics.sh --zookeeper 172.18.163.203:2181,172.18.163.204:2181,172.18.163.205:2181 --create --partitions 5 --replication-factor 3 --topic test01##新建测试topic test012.bin/ka...

weixin_42132359的博客 3698

Kafka:增加Topic的分区数

测试环境参考下面这篇博客: Kafka:搭建Kafka集群 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

kaven 3720
上一篇: spark的任务提交方式及流程
下一篇: sqoop事务如何实现
JNWsong
博客等级 码龄9年 287粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值