tencent cloud

消息队列 CKafka 版

动态与公告
新功能发布记录
Broker 版本升级记录
公告
产品简介
TDMQ 产品系列介绍与选型
什么是消息队列 CKafka 版
产品优势
应用场景
技术架构
产品系列介绍
开源 Kafka 版本支持说明
与开源 Kafka 对比
高可用
使用限制
地域和可用区
相关云服务
产品计费
计费概述
价格说明
计费示例
按小时付费转包年包月
续费说明
查看消费明细
欠费说明
退费说明
快速入门
入门流程指引
准备工作
VPC 网络接入
公网域名接入
用户指南
使用流程指引
配置账号权限
创建实例
配置 Topic
连接实例
管理消息
管理消费组
管理实例
变更实例规格
配置限流
配置弹性伸缩策略
配置高级特性
查看监控和配置告警
使用连接器同步数据
实践教程
集群资源评估
客户端实践教程
日志接入
开源生态对接
替换支撑路由(旧)
迁移指南
迁移方案概述
使用开源工具迁移集群
故障处理
Topic 相关
客户端相关
消息相关
API 参考
History
Introduction
API Category
Making API Requests
Other APIs
ACL APIs
Instance APIs
Routing APIs
DataHub APIs
Topic APIs
Data Types
Error Codes
SDK 参考
SDK 概述
Java SDK
Python SDK
Go SDK
PHP SDK
C++ SDK
Node.js SDK
连接器相关 SDK
安全与合规
权限管理
网络安全
删除保护
事件记录
云 API 审计
常见问题
实例相关
Topic 相关
Consumer Group 相关
客户端相关
网络问题
监控相关
消息相关
服务协议
服务等级协议
联系我们
词汇表

配置限流规则

PDF
Focus Mode
Font Size
Last updated: 2026-01-20 15:56:35
CKafka 提供集群级别和 Topic 级别两种维度的限流保护方案,具体的配置说明如下:

配置集群级限流规则

当您购买指定规格的峰值带宽后,系统会实时监测业务流量使用情况,并基于限流机制自动判断集群是否超出规格用量。若检测到流量持续超过购买规格的阈值,系统将自动触发限流保护,您无需特殊配置。详细的限流机制请参考限流机制说明
若您购买的是专业版实例,可以选择开启弹性带宽,用于应对突发流量,避免因限流导致业务中断。具体步骤请参考开启弹性带宽

配置 Topic 限流规则

您可以针对 Topic 设置限流规则,避免单个 Topic 流量过大而影响其他 Topic。
说明
只有 Broker 版本为 2.11-1.1.1_1.1.4 及以上、2.12-2.4.2_1.1.1 及以上、2.8.1_1.0.8 及以上时才支持设置 Topic 限流规则。

操作步骤

1. 登录 CKafka 控制台
2. 在左侧导航栏选择实例列表,单击目标实例的“ID”,进入实例基本信息页面。
3. 在实例基本信息页面,选择 Topic 列表页签,单击目标 Topic 操作列的更多 > 限流。
4. 在弹窗中开启限流,并配置限流规则。
topic 最大生产流量:不含副本流量,取值范围为 1MB/s 到该实例购买的最大带宽/该 Topic 副本数。
topic 最大消费流量:取值范围为 1MB/s 到该实例购买的最大带宽。底层针对 Broker 进行限流,实际限流值(等于 broker 数量的整数倍)可能会与设置的限流值略有区别。关于软限流机制说明请参见 限流机制说明


CKafka 限流实践教程

分区数的规划与局部限流

由于 CKafka 实例采用多节点分布式部署提供整体的写入和消费服务,因此每个节点分配固定的读写限流额度,为了更好的提高 CKafka 流量的使用率,需要您保证分区数尽量维持节点数的倍数(在分区数是节点的倍数,Ckafka 会尽可能让每个节点存储同样的分区数),流量尽可能均衡(特殊场景例如指定消息的 key 会使写入流量不均衡,默认情况下 CKafka 的客户端会尽可能按照分区均衡流量发送到服务端),此时可以有效避免局部热点问题带来的局部限流问题。

实例限流次数与延时回包监控说明

CKafka 的实例限流次数统计的是各个节点限流次数之和,并不代表整个实例的写入和消费性能,也不代表所有节点都触发了限流,因此当出现限流次数,但是限流流量整体看低于规格值,客户可以在高级监控中,查看各个节点的限流次数的统计,用于判断是哪个节点出现了限流。
遇到这类问题,建议尽可能调整分区数到节点的倍数,提高整体实例的带宽利用率。目前 CKafka 采用延迟回包策略,因此,当出现限流后,您需要密切关注的指标是延迟回包的时间,该监控可以在专业版的高级监控中查看。

写入和消费限流模型的区别

由于生产涉及副本同步,所以要除以副本数;消费只从 Leader 上拉取数据,所以不需要除以副本数。
单节点的最大写入流量 = 规格值 / 节点数 / 副本数。
单节点的消费流量 = 规格值 / 节点数。

关于偶发限流次数的说明

因为副本会占用写入限流,因此更多的副本,意味着写入流量会更低。其中限流实际执行是节点级别的执行,限流观测的是秒级的监控,客户看到的监控是分钟粒度的监控,因此,限流更为敏感,在整体写入流量大于70%(除以副本)时候,在秒级个别节点会出现局部限流,但是并不会持续很久,针对这个问题,客户可以在高级监控节点限流查看具体超了多少流量,如果对响应时间有较高要求,尽量规格预留 30% 的 Buffer。

关于持续限流次数的说明

当实例出现限流次数,同时观察高级监控,每个节点都持续出现限流,实例的流量低于规格值 10% 以上,且排除 Topic 限流规则的影响,此种情况不符合预期,针对这类问题提工单支持。

常见问题

为什么实际限流值会小于配置的阈值?

限流所配置的限额实际会被下发到每台 Broker(单机限流),因此实例维度的限流会按照限流配置值/Broker 数量下发,Topic 限流值也会按照限流配置值/Broker 数量下发。
特别在用户的 Topic 分区数量 < Broker 数量或者分区流量不均衡时,均可能导致提前限流,这种情况下建议增加分区数或优化分区流量。具体步骤请参考变更实例规格配置 Topic 分区均衡

为什么监控生产/消费低于实例规格时会触发限流?

如上文所述,因为限流是以 ms 为单位的,控制台监控平台数据是按每秒采集,分钟维度聚合(最大值或者平均值)。
按令牌桶原理可知,单个桶不会强制限制流量。如果实例 A 的带宽规格为 100MB/s,那么每个 100ms 的时间桶的限流阈值为 100MB/10 = 10MB/桶,假设实例A 的生产流量在某秒的第一个 100ms 时间桶达到了 30MB (时间桶限流阈值的3倍)。那么这时会触发 Broker 限流策略增加延时回包时间,假设原先正常 TCP 返回时间是 100ms,超限后可能会增加 500ms 才返回。最终这秒的流量 :30MB × 1 + 0MB × 5 + 10MB × 4 = 70MB,即这秒内的流量速度为 70MB/s 小于实例规格 100MB/s。


为什么生产/消费峰值流量会高于实例规格?

再次假设实例 A 的带宽规格为 100MB/s,那么每个 100ms 的时间桶的限流阈值为 10MB,假设实例 A 的生产流量在某秒的第一个 100ms 时间桶达到了 70MB(时间桶限流阈值的7倍)。那么这时会触发 Broker 限流策略增加延时回包时间,假设原先正常 TCP 返回时间是 100ms,超限后可能会增加 800ms 延时才返回,在第 900ms 回包后客户端立刻又在第10个时间桶打入了 70MB 流量。最终这秒的流量 (70MB × 1 + 0MB × 8 + 70MB × 1) = 140MB,即这秒内的流量速度为 140MB/s 大于实例规格 100MB/s。


限流次数为什么会暴增?

限流次数是以 TCP 请求统计的,如果实例A在某秒第一个时间桶流量打超了,那么超限后这个时间桶的剩余时间内所有的 TCP 请求都会被限制并统计限流次数。

CKafka 如何进行限流?

为保证服务的稳定性,CKafka 在消息出入上都做了流量管控。
用户所有副本流量之和超过购买时的峰值流量时,会发生限流。
在生产端发生限流时,CKafka 会延长一个 TCP 连接的回应时间,延迟时间取决于用户瞬时流量超过限制的大小。和道路交通管制的原理有点类似,流量超得越多,延时算法得出来的延时值越高,最高5分钟。
在消费端发生限流时,CKafka 会缩小每次 fetch.request.max.bytes 的大小,控制消费端的流量。

如何判断 CKafka 是否发生限流?

1. 在实例列表上,每个集群都有对应的健康度展示。当健康度显示为“告警”字样时,可以将鼠标移至其上查看弹出的详细数据。这个数据会展示当前用户的峰值流量以及发生限流的次数,用户可以根据这里的数据判断该实例是否发生过限流。

2. 用户可以打开监控数据查看流量的最大值,如果 (流量的最大值 × 副本数) > 购买时的峰值带宽,则表明至少发生过一次限流。可通过配置限流告警得知是否发生限流。告警规则等配置步骤请参考配置告警策略

3. 在 CKafka 控制台的监控页面查看实例监控,当限流次数大于0,证明发生过限流。具体步骤请参考查看监控数据



Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback