本文列举了消息队列 CKafka 版中对一些指标和性能的限制,请您在使用中注意不要超出对应的限制值,避免出现异常。
实例
分类 | 限制项 | 说明 |
版本 | CKafka 服务端大版本 | 服务端版本为2.4、2.8、3.2。暂不支持通过控制台进行大版本升级。 |
安全管控 | 暴露 ZooKeeper | 不支持。 |
| 暴露底层资源 | 不支持,避免用户自行操作所带来的风险。 |
| 客户端使用 | 建议使用 CKafka 管控台或者云 API 进行集群、Topic 等元数据管理。 不建议使用通过 AdminClient 直接操作创建 Topic 、修改分区等元数据,避免引起控制台数据不一致的情况,后续计划封禁。 |
性能与可靠性 | 实例最大连接数 | |
| 消息大小 | 不超过 12MB,若超过 12MB 消息会发送失败。 |
| Partition 吞吐 | 在 ack = 1的情况下,受 CKafka 的分区架构、业务数据大小、请求频率等因素的影响,CKafka 单分区的吞吐在30MB/s - 60MB/s之间。 在 ack = -1(强一致)的情况下,受 CKafka 的分区架构、业务数据大小、请求频率等因素的影响,为了保证请求的耗时的稳定,建议 CKafka 单分区的吞吐在10MB/s - 20MB/s之间。 在使用到幂等或者事务的场景下,CKafka 服务端的负荷会进一步提升,对单分区的最大吞吐也会产生一定影响,如果业务关注延时情况,建议您选择不同的集群规格进行压测。 |
| 控制台并发操作限制 | 由于某些管控操作会涉及实例元数据信息的操作与修改,当并发很高时可能会出现一致性问题,影响底层分发,所以会对某些接口操作加锁来限制请求并发度。 为了提高操作的稳定性与成功率,目前只允许对单个实例进行至多 20 次/秒 并发请求(包含 SDK 直接调用云 API 的方式)。 |
| 数据可靠性 | 由于 CKafka 自身的副本同步和 ACK 机制,会有一些极端情况出现数据丢失。例如副本数为 2 、 ack = 1,当分区发生 leader 切换时,而此时副本并未同步完成,这就会导致数据丢失的情况发生。如果您的业务无法容忍数据丢失,请务必参见 CKafka 数据可靠性说明 进行客户端配置。 |
| 耗时 | CKafka 是大流量、高吞吐的消息队列,无法保证每条请求的耗时都是低延时。建议超时时间设置如下: 生产端当 ack = 1 的时候,超时时间默认设置为 30s。 生产端在 ack = -1 的时候,超时时间默认设置为 60s。 消费端的超时时间设置为 60s。 |
网络连接 | 多路由 | 单个实例只能创建1条公网路由,最多创建5条路由(不包括创建实例时创建的实例主路由)。 |
| VPC 路由 | CKafka 将为创建实例时选择的 VPC 网络创建一条主路由,不支持删除主路由。 |
| 公网带宽 | 默认提供 3Mbps 免费公网带宽,专业版实例可以额外升配公网带宽。 |
实例管理 | 实例地域属性 | 实例创建后,不支持变更。 |
| 标签 | 每个云资源允许的最大标签数量为50。 |
说明:
受 CKafka 的分区架构、业务数据大小、请求频率、物理层稳定性等因素的影响,CKafka 无法保证每条请求的耗时都是低延时。
我们会尽量保证如下两种情况:
单实例月度生产耗时达标率,和该实例的 SLA 保持一致。
单实例月度消费耗时达标率,和该实例的 SLA 保持一致。
比例计算公式如下:
月度生产耗时达标率 = (该月所有每分钟生产 P999 耗时未超过 30s 的分钟数 / 月度服务总分钟数)× 100%。
月度消费耗时达标率 = (该月所有每分钟消费 P999 耗时未超过 60s 的分钟数 / 月度服务总分钟数)× 100%。
Topic
限制项 | 说明 |
Topic 数量/总分区数 | 当实例下所有 Topic(包含手动和自动创建的 Topic)的总分区数(含副本分区数)达到 Partition 数量上限后,将无法继续创建 Topic,您可以通过扩容 Partition 上限来增加 Topic 额度。 |
单个 Topic 分区数 | 单 Topic 分区数不含副本,出于稳定性考虑,建议单个 Topic 的分区数设置为200以内。 |
副本数 | 高级版/专业版实例支持配置 1~3 副本。为了保障数据可靠性,生产环境不建议使用单副本。默认创建的 Topic 是2副本,如果业务需要更高的可用性,可以配置为3副本。 |
Consumer group
限制项 | 说明 |
Consumer group 数量 | 标准版实例级别 Consumer group 数量建议不超过50个。 高级版和专业版实例级别 Consumer group 数量建议不超过500个,支持 联系我们 申请升级。 |
消费组名称 | 支持字母、数字、下划线、“-”、“.”,消费组名称包含特殊字符可能导致监控无法正常展示。 |