弹性存储最佳实践 技术原理 本地存储 本地存储服务写流量/追尾读,提供与原Kafka实例一致的延时、可用性和一致性。 远程存储故障或者性能衰退,本地存储支持弹性扩容提供读写服务,参考智能运维中磁盘自动扩容能力。 远程存储 远程存储服务追赶读,对比本地存储时延较高,吞吐量降低。 按需使用,按量计费。 单副本存储,远端存储提供数据的可靠性。 功能说明 使用限制 1. 引擎版本 当前仅在 Kafka 3.6.x或以上引擎版本支持弹性存储。 2. 地域 仅在Ⅱ类资源池支持。 3. 弹性存储Topic禁止使用事务消息 暂时不建议在该形态下使用事务消息,如需使用,该Topic可不开启弹性存储。 4. 开放范围 功能处于白名单状态,如需使用,请您联系我们。 使用说明 弹性存储的确定基于实际业务场景的吞吐量和存储量需求,还需要综合考虑以下几点: 考虑点 建议 本地磁盘存储空间 本地磁盘存储空间 (未开启弹性存储的Topic存储量 + 弹性存储Topic本地热数据存储量) 130% 未开启弹性存储的Topic存储量:未开启弹性存储的Topic业务消息量 副本数,如集群未开启弹性存储的Topic均为3副本,消息量为100GB,则未开启弹性存储的Topic存储量为100GB 3 300 GB。 弹性存储Topic本地数据存储量 :弹性存储主题热数据会存储在本地,未超过“消息本地保留时长” 的消息数据均存储在本地;由于数据生命周期以分区分片为单位,未满一个数据分片的数据也会存储在本地(默认1个分片大小为1GB,编辑主题可调整)。 假如集群有3副本的主题分区100个,分片大小均为1GB。 保留时间为1小时,1小时消息量为50GB,则弹性存储Topic本地数据存储量 max(100 1GB 3, 50GB 3) 300GB。 假如集群有3副本的主题分区100个,分片大小均为128MB。 保留时间为1小时,1小时消息量为50GB,则弹性存储Topic本地数据存储量 max(100 128MB 3, 50GB 3) 150GB。 建议预留多30%存储空间。 磁盘空间大小会影响磁盘性能,具体性能参考“磁盘类型及性能介绍”。 消息本地保留时长 默认为1小时。建议根据业务实际消费场景调整,如消费者经常消费落后1.5小时,则需要调大到2小时。 分区分片大小 默认为1G,弹性存储Topic可以适当调小至128MB~1024MB之间,因为数据生命周期管理以分区分片为单位,消息数据量必须满一分片才会上传弹性存储或超时清理。 以以下实际场景来举例是否开启弹性存储空间的区别和配置考虑: 场景 弹性存储集群 普通集群 业务数据量30M/s左右 3副本主题,生产消费1:1,分区100个,消息保留24小时(约2531GB业务数据) 规格: kafka.2u4g.cluster,单节点超高IO 200GB,节点数 3 配置: 开启弹性存储,分片大小128M,消息本地保留时长为1小时,消息保留24小时 性能: 单节点带宽峰值100MB/s(性能瓶颈为节点带宽) 成本: 规格费用:1323元/月 本地存储费用:720元/月 远程存储费用:300元/月 规格: kafka.2u4g.cluster,单节点超高IO 3300GB,节点数 3 配置: 未开启弹性存储,消息保留24小时 性能: 单节点带宽峰值100MB/s(性能瓶颈为节点带宽) 成本: 规格费用:1323元/月 存储费用:11880 元/月