消息队列 CKafka 版 使用限制

这篇列举了消息队列 CKafka 版中对一些指标和性能的限制,请你在使用中注意不要超出对应的限制值,避免出现异常。

相关产品
消息队列 CKafka 版 产品页,含版本规格、价格与购买入口。

注意:若由于你的实例配置超出下列限制导致的任何不稳定情况,不在 SLA 承诺和赔偿范围内。

注意:说明:

注意:这篇公式中的 F 指代如下(// 表示整数除法,即向下取整):Serverful 实例为业务实际发送流量(消费类限制为业务实际消费流量),单位 MB/s;Serverless 版为购买规格中的发送能力预留(消费类限制为订阅能力预留),单位 MB/s。

一、实例

分类 限制项 说明
版本 CKafka 服务端大版本 Serverful 形态:服务端版本为2.4、2.8、3.2。暂不支持通过控制台进行大版本升级。Serverless 形态:由平台自动维护稳定版本,用户无需关注版本升级操作。
兼容性 高级特性 Serverless 实例暂不支持事务、幂等、Compact。
安全管控 暴露 ZooKeeper 不支持。
 暴露底层资源 不支持,避免用户自行操作所带来的风险。
 客户端使用 建议使用 CKafka 管控台或者云 API 进行集群、Topic 等元数据管理。不建议通过 AdminClient 直接操作创建 Topic 、修改分区等元数据,避免引起控制台数据不一致的情况,后续计划封禁。
性能与可靠性 实例最大连接数 实例的 TCP 连接数。Serverful 实例:起始连接数为 1000,业务实际发送流量每增加 100 MB/s,连接数增加 1000,上限为 50000,计算公式 C = min(50000, 1000 + (F // 100) * 1000)。Serverless 版:起始连接数为 1000,发送能力预留每增加 100 MB/s,连接数增加 1000,上限为 50000,计算公式 C = min(50000, 1000 + (F // 100) * 1000)。超过连接数上限后,新连接会缓慢建连,老连接会被 LRU 释放。如果评估该最大值在实际业务中不合理可以 联系我们 申请变更。
 单节点最大建立连接频率 CKafka 实例单节点最大建立连接频率为 150 次/秒,Serverful 实例与 Serverless 版一致。每秒客户端与服务端尝试建立连接次数(包含因鉴权失败等原因导致的失败连接),超过连接数上限后,新连接会缓慢建连。
 消息大小 不超过 12MB,若超过 12MB 消息会发送失败。
 Partition 吞吐 在 ack = 1的情况下,受 CKafka 的分区架构、业务数据大小、请求频率等因素的影响,CKafka 单分区的吞吐在30MB/s – 60MB/s 之间。在 ack = -1(强一致)的情况下,受 CKafka 的分区架构、业务数据大小、请求频率等因素的影响,为了保证请求的耗时的稳定,建议 CKafka 单分区的吞吐在10MB/s – 20MB/s 之间。在使用到幂等或者事务的场景下,CKafka 服务端的负荷会进一步提升,对单分区的最大吞吐也会产生一定影响,如果业务关注延时情况,建议你选择不同的集群规格进行压测。
 发送请求频率 客户端每秒发送 PRODUCE 的请求数量,频率过高可能导致服务端 CPU 负载上升,影响集群稳定性。Serverful 实例:起始为每秒 10000 个请求,业务实际发送流量每增加 20 MB/s,每秒请求数量增加 2000 个,计算公式 R = 10000 + (F // 20) * 2000。Serverless 实例:起始为每秒 10000 个请求,发送能力预留每增加 60 MB/s,每秒请求数量增加 2000 个,计算公式 R = 10000 + (F // 60) * 2000。
 消费请求频率 客户端每秒发送 FETCH 的请求数量,频率过高可能导致服务端 CPU 负载上升,影响集群稳定性。Serverful 实例:起始为每秒 5000 个请求,业务实际消费流量每增加 20 MB/s,每秒请求数量增加 1000 个,计算公式 R = 5000 + (F // 20) * 1000。Serverless 版:起始为每秒 5000 个请求,订阅能力预留每增加 20 MB/s,每秒请求数量增加 1000 个,计算公式 R = 5000 + (F // 20) * 1000。
 提交消费位点频率 客户端每秒发送 OFFSET_COMMIT 的请求数量,频率过高可能导致服务端 CPU 负载上升,影响集群稳定性。Serverful 实例:起始为每秒 100 个请求,业务实际发送流量每增加 100 MB/s,每秒请求数量增加 100 个,上限每秒 1000 个请求,计算公式 R = min(1000, 100 + (F // 100) * 100)。Serverless 版:起始为每秒 100 个请求,发送能力预留每增加 100 MB/s,每秒请求数量增加 100 个,上限每秒 1000 个请求,计算公式 R = min(1000, 100 + (F // 100) * 100)。
 元数据请求频率 服务端收到的客户端元数据 request,例如 METADATA、INIT_PRODUCER_ID、JOIN_GROUP 等,请求过于频繁会影响集群稳定性。Serverful 实例:起始为每秒 100 个请求,业务实际发送流量每增加 100 MB/s,每秒请求数量增加 100 个,上限每秒 1000 个请求,计算公式 R = min(1000, 100 + (F // 100) * 100)。Serverless 版:起始为每秒 100 个请求,发送能力预留每增加 100 MB/s,每秒请求数量增加 100 个,上限每秒 1000 个请求,计算公式 R = min(1000, 100 + (F // 100) * 100)。
 控制台并发操作限制 由于某些管控操作会涉及实例元数据信息的操作与修改,当并发很高时可能会出现一致性问题,影响底层分发,所以会对某些接口操作加锁来限制请求并发度。 为了提高操作的稳定性与成功率,目前只允许对单个实例进行至多 20 次/秒 并发请求(包含 SDK 直接调用云 API 的方式)。
 数据可靠性 由于 CKafka 自身的副本同步和 ACK 机制,会有一些极端情况出现数据丢失。例如副本数为 2 、 ack = 1,当分区发生 leader 切换时,而此时副本并未同步完成,这就会导致数据丢失的情况发生。如果你的业务无法容忍数据丢失,请务必参见 CKafka 数据可靠性说明 进行客户端配置。说明:为保障数据可靠性和服务稳定性,CKafka Serverless 产品仅支持3副本 Topic 配置。
 耗时 CKafka 是大流量、高吞吐的消息队列,无法保证每条请求的耗时都是低延时。建议超时时间设置如下:生产端当 ack = 1 的时候,超时时间默认设置为 30s。生产端在 ack = -1 的时候,超时时间默认设置为 60s。消费端的超时时间设置为 60s。
网络连接 多路由 单个实例只能创建1条公网路由,最多创建5条路由(不包括创建实例时创建的实例主路由)。Serverless 实例暂不支持创建公网路由。
 VPC 路由 CKafka 将为创建实例时选择的 VPC 网络创建一条主路由,不支持删除主路由。
 公网带宽 Serverful 实例默认提供 3Mbps 免费公网带宽,专业版实例可以额外升配公网带宽。Serverless 实例暂不支持公网访问。
实例管理 实例地域属性 实例创建后,不支持变更。
 标签 每个云资源允许的最大标签数量为 50。

注意:说明:

注意:受 CKafka 的分区架构、业务数据大小、请求频率、物理层稳定性等因素的影响,CKafka 无法保证每条请求的耗时都是低延时。

二、Topic

限制项 说明
Topic 数量/总分区数 当实例下所有 Topic(包含手动和自动创建的 Topic)的总分区数(含副本分区数)达到 Partition 数量上限后,将无法继续创建 Topic,你可以通过扩容 Partition 上限来增加 Topic 额度。
单个 Topic 分区数 单 Topic 分区数不含副本,出于稳定性考虑,建议单个 Topic 的分区数设置为200以内。
副本数 Serverful 形态高级版/专业版实例支持配置 1~3 副本。为了保障数据可靠性,生产环境不建议使用单副本。默认创建的 Topic 是 2 副本,如果业务需要更高的可用性,可以配置为 3 副本。为更好地保障数据可靠性和服务稳定性:CKafka Serverful 专业版弹性存储 Topic 副本数最少为 2 个,不支持创建单副本 Topic。CKafka Serverless 产品仅支持 3 副本 Topic 配置。

三、Consumer group

限制项 说明
Consumer group 数量 标准版实例级别 Consumer group 数量建议不超过50个。高级版和专业版实例级别 Consumer group 数量建议不超过500个,支持 联系我们 申请升级。Topic 和 Group 的订阅比建议 1:1,不超过 3:1,过多的消费者组可能导致服务端协调负载增加、元数据管理复杂性提高,从而影响性能和故障恢复时间。
消费组名称 支持字母、数字、下划线、“-”、“.”,消费组名称包含特殊字符可能导致监控无法正常展示。
赞 (0)
上一篇 4天前
下一篇 4天前