大数据(4h)Kafka经验小结(不定更)

kafka的客户端限流(资源配额) 本文说明的是Kafka的客户端(生产者、消费者)与broker之前的限流,不是kafka的broker间topic副本同步的限流。 阅读详情

压力测试

创建单分区单副本主题

kafka-topics.sh \
--create \
--replication-factor 1 \
--partitions 1 \
--zookeeper hadoop100:2181/kafka \
--topic t3
生产者参数描述备注
--topic生产到哪个主题
--num-records生产多少条消息
--throughput最大消息吞吐量限制,-1不限制messages/sec
--record-size每条消息的大小bytes
--print-metrics打印指标默认不打印
--producer-props生产者相关配置,如服务器地址优先级高于--producer.config
--producer.config生产者配置文件路径
kafka-producer-perf-test.sh \
--throughput -1 \
--print-metrics \
--num-records 1000000 \
--record-size 1024 \
--producer-props bootstrap.servers=hadoop100:9092 \
--topic t3
消费者参数描述默认值备注
--bootstrap-server服务器连接地址必要参数
--consumer.config消费者配置文件路径
--date-format时间字段的格式yyyy-MM-dd HH:mm:ss:SSS
--fetch-size单次请求 拿取的数据大小1048576
--from-latest从最尾的消息开始消费
--group消费者组perf-consumer-89916
--hide-header不打印状态头
--messages消费的消息数量必要参数
--print-metrics打印指标
--socket-buffer-sizeThe size of the tcp RECV size2097152
--timeout返回记录期间允许的最大时间10000单位:毫秒
--topic消费哪个主题必要参数
kafka-consumer-perf-test.sh \
--print-metrics \
--messages 1000000 \
--bootstrap-server hadoop100:9092 \
--topic t3

参数优化

主要参数优化

文件 or 命令参数名参数说明参数值建议说明
server.propertieslog.retention.hours数据保留时间72建议3天
server.propertiesdefault.replication.factor默认副本策略2建议>1
kafka-topics.sh--replication-factor创建主题时副本策略2建议>1
kafka-server-start.shKAFKA_HEAP_OPTS内存-Xms5G -Xmx5G建议不超过6G

单条日志传输大小

  • Kafka对于消息体的大小默认为单条最大值是1M;
    但某些场景里一条消息大于1M,此时需要配置server.properties文件的如下参数
参数名参数说明
replica.fetch.max.bytesBroker可复制的消息的最大字节数
message.max.bytesKafka会接收单个消息size的最大限制
要求:message.max.bytes≤replica.fetch.max.bytes

过期数据清理

两种策略参数
删除策略log.cleanup.policy = delete
压缩策略log.cleanup.policy = compact

异常处理

Kafka挂了咋办?

  • 通常挂掉的原因:OOM
  • 挂掉以后有什么不良后果?
    生产数据丢失:当ack=1且Leader收消息后还没来得及同步就挂了时,数据会丢失
    当 ack=-1,并且消费者没有开启事务,并且消费者操作非幂等 时,数据会重复

  • 处理方式
    1、重启Kafka
    2、查看日志错误信息
    3、优化配置(例如内存)以减少挂掉的概率
    4、处理丢失或重复的数据

数据积压

  • 原因:消费者太慢或挂掉

  • 影响:积压3天后没被消费,数据丢失

  • 解决方案:
    1、加主题的分区数,并且同时增加消费组的消费者数,使得 消 费 者 数 = 分 区 数 消费者数=分区数 消费者数=分区数
    2、优化消费者,如:增加每批次拉取的数量

主题和分区的设计

  • Kafka数据在分区内有序,在主题中不一定有序

  • 如何划分主题?
    按日志类型
    MySQL导过来的话,一个表一个分区

  • 多少个分区?
    要求有序则单分区(慢)
    按表中不影响排序的字段(如:地区)…

  • Kafka分区数计算
    1、创建单分区主题
    2、测试该主题的生产者吞吐量和消费者吞吐量(使用内置脚本)
    3、 分 区 数 = 吞 吐 量 预 期 / m i n ( 吞 吐 量 生 产 者 , 吞 吐 量 消 费 者 ) 分区数=吞吐量_{预期}/min(吞吐量_{生产者},吞吐量_{消费者}) 分区数=吞吐量预期​/min(吞吐量生产者​,吞吐量消费者​)

消费者策略

  • 消 费 者 组 的 消 费 者 数 = 主 题 的 分 区 数 消费者组的消费者数=主题的分区数 消费者组的消费者数=主题的分区数
  • 按照时间消费数据
  • 自动提交消费者偏移量(速度快但故障后可能会丢数据)
  • 手动提交消费者偏移量(降低数据风险但增加代码复杂度)

附录

en🔉cn
latencyˈleɪtənsin. 潜伏;潜在因素;延迟
fetchfetʃvt. 取来;vi. 拿;取物;n. 取得;诡计

生产者压测结果

records sentrecords/secMB/secavg latencymax latency
12520625041.224.451002.4 ms1165.0 ms
13704027397.026.751127.2 ms1402.0 ms
16587033174.032.40938.1 ms1049.0 ms
16644033288.032.51924.9 ms1004.0 ms
16972533945.033.15900.9 ms958.0 ms
16098032196.031.44952.6 ms1078.0 ms
100000030971.25867230.25965.92 ms1402.00 ms
932 ms 50th
1161 ms 95th
1264 ms 99th
1395 ms 99.9th

消费者压测结果

data.consumed.in.MBMB.secdata.consumed.in.nMsgnMsg.secrebalance.time.msfetch.time.msfetch.MB.secfetch.nMsg.sec
976.5625119.28211000000122144.86381631504172888-1631504164701-0.0000-0.0006

吞 吐 量 预 期 = 12 M / 秒 吞吐量_{预期} = 12M/秒 吞吐量预期​=12M/秒
分 区 数 = 吞 吐 量 预 期 / m i n ( 吞 吐 量 生 产 者 , 吞 吐 量 消 费 者 ) = 12 / m i n ( 30 , 119 ) = 12 / 30 分区数=吞吐量_{预期}/min(吞吐量_{生产者},吞吐量_{消费者})=12/min(30,119)=12/30 分区数=吞吐量预期​/min(吞吐量生产者​,吞吐量消费者​)=12/min(30,119)=12/30
分区数设置为1

kafka流量限制 文章目录1.官网参考地址2.可以设置限制流量参数3.流量限制维度及组合4.如何设置流量5.限制用户流量阀值如何设置6.流量限制效果 1.官网参考地址 http://kafka.apache.org/21/documentation.html#design_quotas 2.可以设置限制流量参数 producer_byte_rate=1024 #单个broker入流量限制参数,单位字节 cons... 阅读详情

相关推荐

Kafka高级(6) -- Kafka配额限速机制(Quotas)

生产者和消费者以极高的速度生产/消费大量数据或产生请求,从而占用broker上的全部资源,造成网络IO饱和。有了配额(Quotas)就可以避免这些问题。Kafka支持配额管理,从而可以对Producer和Consumer的produce&fetch操作进行流量限制,防止个别业务压爆服务器。 1. 限制producer端速率 2. 限制consumer端速率 3. 取消Kafka的Quota配置

erainm 2192

Kafka 控制生产者流量

限制发送速率为每秒1000条消息# 发送消息')# 等待指定时间,控制发送速率调整和batch.size:控制生产者的内存缓冲区大小和批次大小。配置linger.ms:通过设置延迟来控制消息批量发送的频率。控制请求超时和重试策略:避免过多重试造成的负载。使用自定义速率限制:在生产者应用中实现速率控制。调整和:控制单个请求的大小和等待时间。这些配置结合起来,可以有效地管理 Kafka 生产者的流量,从而提高系统的稳定性和性能。

木子馋喵的知识杂货铺 1720

Simulink模型转FMU全攻略:从环境配置到问题排查

在复杂系统仿真中,功能样机单元FMU作为FMI标准的核心载体,将动态系统模型封装为独立、可复用的跨平台组件,无需依赖原始建模环境即可被其他工具调用。其原理是通过标准化接口描述与可执行代码,实现模型交换与联合仿真,极大提升了模型复用性和跨团队协作效率。在汽车、航空航天等领域,FMU广泛应用于控制器算法验证、多物理场联合仿真等场景。然而,从Simulink等工具导出FMU涉及环境配置、模型规范化、类型选择等关键步骤,稍有疏忽便会导致编译失败或仿真结果不一致。本文立足工程实践,系统梳理Simulink模型转FMU

weixin_29179311的博客 271

彻底搞懂 Kafka 消息大小相关参数设置的规则

前段时间接到用户要求,调整某个主题在 Kafka 集群消息大小为 4M。 根据 Kafka 消息大小规则设定,生产端自行将 max.request.size 调整为 4M 大小,Kafka 集群为该主题设置主题级别参数 max.message.bytes 的大小为 4M。 以上是针对 Kafka 2.2.x 版本的设置,需要注意的是,在某些旧版本当中,还需要调整相关关联参数,比如 replica.fetch.max.bytes 等。 从上面例子可看出,Kafka 消息大小的设置还是挺复杂的一件事,而且还分版

后端进阶 1万+

组态王|通过日历控件选择时间段查询历史报警

哈喽,你好啊,我是雷工!这节记录下查询历史报警信息的功能实现。以下为实现笔记。

做有价值的事,积累有价值的笔记! 3772

ArcGIS Enterprise10.9.1的Windows安装部署

ArcGIS Enterprise10.9.1中Windows版本安装介绍。

qq_36250702的博客 2446

【大数据开发运维解决方案】OGG For Bigdata 12按操作类型同步Oracle数据到kafka不同topic

Oracle可以通过OGG for Bigdata将Oracle数据库数据实时增量同步至hadoop平台(kafka,hdfs等)进行消费,笔者搭建这个环境的目的是将Oracle数据库表通过OGG同步到kafka来提供给flink做流计算。具体的实施文档已经在之前的文章中写了,这里只给出连接: OGG实时同步Oracle数据到Kafka实施文档(供flink流式计算) 这篇文章主要介绍的是: Or...

赵延东的一亩三分地 16万+

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 245

大数据之电商数仓(5) | 项目经验之Kafka

目录Kafka的常用命令Kafka的压力测试Kafka机器数量计算 Kafka的常用命令 1.查看Kafka Topic列表 bin/kafka-topics.sh --zookeeper hadoop12:2181 --list 2.创建Kafka Topic bin/kafka-topics.sh --zookeeper hadoop12:2181,hadoop13:2181,hadoop14:2181 --create --replication-factor 1 --partitions 1 -

Knight 797

解决/usr/lib64/libstdc++.so.6和/lib64/libc.so.6版本过低问题

在CentOS7.0中编译好MySQL5.7.14之后,然后在CentOS6.5中初始化MySQL,执行:/usr/local/mysql/bin/mysqld --version出现如下问题:./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/mysqld)

poxiaonie的博客 2万+

NSGA-III相关笔记

NSGA-III目录目的区别NSGA-III的算法流程非支配排序详解归一化详解 目录 NSGA-III基于matlab的实现 参考文献 1.An Evolutionary Many-Objective Optimization Algorithm Using Reference-point Based Non-dominated Sorting Approach,Part I: Solving P...

weixin_42555400的博客 1万+

终极大数据学习路线:从入门到专家的完整awesome-bigdata资源指南 [特殊字符]

大数据技术正在改变世界,但对于初学者来说,面对海量的框架和工具往往感到无从下手。**awesome-bigdata** 项目为您提供了一个精心整理的大数据生态资源大全,涵盖了从基础框架到高级应用的完整技术栈。这个革命性的学习路线将帮助您快速掌握大数据核心技术,从入门到专家一路畅通无阻! ## 📊 大数据生态系统全景图 大数据技术栈可以分为多个层次,每个层次都有其特定的工具和框架。**awes

gitblog_00753的博客 421

ComfyUI工作流换脸节点报错ReActorFaceSwap

找到自己ComfyUI安装目录的custom_nodes下是否有这个comfyui-reactor-node-main。大家在借鉴别人工作流进行AI换脸的时候,如果遇到ReActorFaceSwap报错提示,莫慌,看我的,两步解决问题。这里千万注意不要嵌套文件夹,保证点击去这个文件就可以看到内置的配置文件!找到自己ComfyUI安装目录的facerestore_models。如果有这个文件,直接跳过,去下一步。如果没有,可以去Git官网下载。

qq_70810809的博客 9018

kafka安装配置(超详细,傻瓜式安装)

数据存放位置,每个节点一个如/kafka-logs-1,/kafka-logs-2,/kafka-logs-3等,不同节点使用文件不可重复,如果重复了容易启动失败。在每个节点启动Kafka,创建topic,其中toipic名称为installtopic,分区数为2,副本数为2。修改bigdata2和bigdata3中的zookeeper下的data中myid的值分别改为3和4。#对外的ip及端口,端口号每个文件不要用同一个,我使用的分别是9091,9092,9093。配置好kafka的环境变量。

2301_77578187的博客 6538

从ARCore到AICore:揭秘Google如何通过系统级服务推动Android生态创新

本文深入探讨了Google如何通过AICore等系统级服务推动Android生态创新。从ARCore到AICore,Google通过分层解耦策略将AI能力下沉至系统层,实现端侧大模型推理,如Gemini Nano在Pixel 8 Pro中的应用。文章剖析了AICore的技术架构、开发者赋能路径及场景化实践,展示了其在通信、内容创作和生产力工具中的卓越表现。

rust6ferris的博客 546

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)

基本配置 系统:CentOS7.6 节点信息: 节点 ip master 192.168.185.150 slave1 192.168.185.151 slave2 192.168.185.152 网络配置 # 注意:centos自从7版本以后网卡名变成ens33而不是我这里的eth0了,我是习惯eth0了所以在安装的时候修改了网卡名,如果你的centos网卡名是e...

pig2guang的博客 4万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

终极大数据技术指南:如何快速掌握Awesome BigData完整资源目录

在当今数据驱动的时代,大数据技术已成为企业和开发者必须掌握的核心技能。Awesome BigData项目是一个精心策划的大数据框架、资源和工具集合,为数据工程师、数据科学家和开发者提供了一个完整的元数据索引与全文检索技术指南。这个开源项目汇集了从分布式计算到机器学习,从数据存储到可视化分析的完整大数据生态系统。 ## 🚀 为什么需要Awesome BigData资源目录? 随着大数据技术的快

gitblog_00088的博客 450

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2020大数据面经整理

一、快手大数据开发工程师面经 作者:恶魔木魅妈妈咪 链接:https://www.nowcoder.com/discuss/392528 来源:牛客网 一面(40min) 1、自我介绍? 2、Spark任务调度(源码)? SparkDeploySchedularBackend :   底层会通过SchedulerBackend方法针对不同种类的Cluster(StandAlone、Yarn、M...

小道的博客 9000

大数据资源宝库终极指南:awesome-bigdata竞品深度分析报告

在数据驱动决策的时代,**大数据技术**已成为企业数字化转型的核心引擎。awesome-bigdata作为一个精心策划的开源项目,汇集了全球最顶尖的大数据框架、工具和资源,为开发者和企业提供了一站式解决方案。本文将深入剖析该项目的核心价值、内容架构及其在同类竞品中的独特优势,帮助你快速掌握大数据技术生态的全貌。 ## 为什么选择awesome-bigdata? awesome-bigdata的

gitblog_00725的博客 563

摸鱼大数据——Kafka——Kafka的集群搭建

2- 分发之后,记得要修改每个server.properties的 id 和 监听地址。(5) 给start-kafka.sh、stop-kafka.sh配置执行权限。5- 启动的时候server.properties中路径,不要写错了。(2)准备slave配置文件,用于保存要启动哪几个节点上的kafka。(1)在 节点1 中创建 /export/onekey 目录。# 2.再在三台集群上都输入以下命令,启动Kafka。# 再启动Kafka。# 2.只在node1上一键启动所有kafka服务。

weixin_65694308的博客 1113

大牛呕心力作——Kafka开发实战,助你徜徉大数据时代

Kafka快速入门消息引擎系统Kafka概要设计Kafka基本概念与术语Kafka使用场景本章小结。

2401_84186026的博客 944

bigdata-ecosystem的10个真实用途:从大数据技术选型到学习路线图

**bigdata-ecosystem** 是一个开源的 BigData Ecosystem Dataset(大数据生态数据集):它把 **500 多个大数据相关开源项目** 和 **190 余篇经典论文**(1997–2016)全部整理成了结构统一的 JSON 文件。对刚接触大数据的同学来说,它相当于一张"全景地图"——既能帮你快速做技术选型、对比数据库和流处理框架,也能按年份梳理出完整的学习路

gitblog_00698的博客 1408

openEuler/bigdata:一站式大数据组件集成平台深度解析

前往项目官网免费下载:[https://ar.openeuler.org/ar/](https://ar.openeuler.org/ar/?utm_source=csdn_blog) openEuler/bigdata是一个功能强大的一站式大数据组件集成平台,旨在构建和完善openEuler社区下的大数据生态,为用户提供丰富的大数据组件和便捷的使用体验。无论是数据采集、传输、存储,还是分析和可

gitblog_06816的博客 258

ogg for bigdata 写入 kafka 写入hbase

ogg for bigdata 写入 kafka 写入hbase

qq_38151907的博客 6280

【大数据之Kafka】八、Kafka Broker之生产经验

对于broker0节点,分区2的AR优先副本是0节点,但0节点不是Leader节点,所以不平衡数+1,AR副本总数为4,所以broker0节点不平衡率为1/4>10%,需要平衡。对于broker2节点,分区3的AR优先副本是2节点,但2节点不是Leader节点,所以不平衡数+1,AR副本总数为4,所以broker2节点不平衡率为1/4>10%,需要平衡。对于broker1节点,分区1的AR优先副本是1节点,且1节点是Leader节点,所以不平衡数为0,broker1节点不平衡率为0,不需要平衡。

阿宁的博客 217

大数据框架终极指南:如何快速选择适合你的Awesome BigData工具

在当今数据驱动的时代,选择合适的大数据框架和工具对于企业和开发者来说至关重要。Awesome BigData项目作为一个精心整理的资源列表,汇集了最全面的大数据框架、资源和工具,帮助开发者和数据工程师快速找到最适合自己需求的解决方案。无论你是大数据新手还是经验丰富的专家,这个项目都能为你提供宝贵的参考和指导。 ## 📊 为什么需要Awesome BigData资源列表? 随着大数据技术的快速

gitblog_00296的博客 795
上一篇: ElasticSearch集群部署
下一篇: 大数据(5e)Spark之Scala读写HBase之Phoenix表
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值