背景信息
在云原生和大数据成本优化的大趋势下,分布式消息Kafka引入弹性存储功能,正是为了应对传统架构中“高成本、难扩展、利用率低”的痛点。通过弹性存储能力,实现存储成本的显著下降和资源的按需使用,使企业能够以更经济的方式处理海量流数据。弹性存储能力核心优势如下:
显著降低存储成本
对象存储的费用通常仅为超高IO云盘费用的7.5%~10%,并且冷数据存储在远端只需存储一个副本。通过将不常访问的历史数据迁移到对象存储,企业可以在保留更长数据保留周期的同时,大幅降低总体拥有成本。
实现按需使用、弹性扩展
弹性存储解耦了计算与存储。对象存储具备近乎无限的扩展能力,无需预先规划容量。用户可以根据业务需求灵活延长数据保留时间(如从 7 天延长至 90 天甚至更久),而无需担心存储瓶颈。
提升资源利用率与运维效率
本地磁盘资源专注于服务高频访问的热数据,提升集群性能;冷数据由对象存储承载,减轻 Kafka服务端的存储压力。同时,减少了因存储不足而频繁扩容的运维负担。
支持更多数据应用场景
低成本的长期数据保留使得 Kafka 不仅可用于实时流处理,还可作为事件溯源、数据湖入湖前的缓冲层、合规归档等场景的统一数据平台,提升数据价值。
技术原理

本地存储
本地存储服务写流量/追尾读,提供与原Kafka实例一致的延时、可用性和一致性。
远程存储故障或者性能衰退,本地存储支持弹性扩容提供读写服务,参考智能运维中磁盘自动扩容能力。
远程存储
远程存储服务追赶读,对比本地存储时延较高,吞吐量降低。
按需使用,按量计费。
单副本存储,远端存储提供数据的可靠性。
功能说明
使用限制
引擎版本
当前仅在 Kafka 3.6.x或以上引擎版本支持弹性存储。
地域
仅在Ⅱ类资源池支持。
弹性存储Topic禁止使用事务消息
暂时不建议在该形态下使用事务消息,如需使用,该Topic可不开启弹性存储。
开放范围
功能处于白名单状态,如需使用,请您联系我们。
使用说明
弹性存储的确定基于实际业务场景的吞吐量和存储量需求,还需要综合考虑以下几点:
考虑点 | 建议 |
---|---|
本地磁盘存储空间 | 本地磁盘存储空间 =(未开启弹性存储的Topic存储量 + 弹性存储Topic本地热数据存储量) * 130%
|
消息本地保留时长 | 默认为1小时。建议根据业务实际消费场景调整,如消费者经常消费落后1.5小时,则需要调大到2小时。 |
分区分片大小 | 默认为1G,弹性存储Topic可以适当调小至128MB~1024MB之间,因为数据生命周期管理以分区分片为单位,消息数据量必须满一分片才会上传弹性存储或超时清理。 |
以以下实际场景来举例是否开启弹性存储空间的区别和配置考虑:
场景 | 弹性存储集群 | 普通集群 |
---|---|---|
业务数据量30M/s左右 3副本主题,生产消费1:1,分区100个,消息保留24小时(约2531GB业务数据) |
|
|
步骤一:创建Kafka实例(3.6.x版本或以上)
需订购好3.6.x引擎版本或以上的分布式消息Kafka实例,具体操作可参考创建实例。
步骤二:开启实例弹性存储
(1)登录管理控制台。
(2)进入Kafka管理控制台。
(3)在实例列表页在操作列,目标实例行点击“管理”,进入实例详情。
(4)在实例详情页打开“弹性存储”开关按钮,选择用于存储远端数据的对象存储Bucket和填写对应具备读写权限的ak、sk。点击提交。
(5)等待集群开启变更完成,集群会发生轮训重启,等待重启完成即可。
步骤三:配置Topic的弹性存储属性与本地保留时长
(1)登录管理控制台。
(2)进入Kafka管理控制台。
(3)在实例列表页在操作列,目标实例行点击“管理”。
(4)点击“Topic管理”后,选择指定的Topic点击其右侧“编辑”按钮。
(5)打开“是否开启弹性存储”开关,点击“修改”保存。
计费说明
该功能本地存储使用订购实例时的磁盘存储,具体费用可参考“分布式消息Kafka资费”, 远端存储费用为对象存储费用。该功能无额外收取其他费用。