集群无感扩缩容介绍

更新时间:2025-03-12 03:35:52

云数据库 Tair(兼容 Redis)集群架构实例在扩容(增加集群分片数量)、缩容(减少集群分片数量)过程中,能够有效消除原生Redis集群可能会产生的-ASK-TRYAGAIN 错误,从而实现无感扩缩容。

特性说明

与原生Redis 集群扩缩容相比,云数据库 Tair(兼容 Redis)集群架构实例扩缩容具有以下特点:

  • 高效的扩缩容管理:通过中心化的控制组件,实现对集群行为的高效、精准控制。

  • 原子性数据迁移:深入修改内核的数据复制逻辑,保证数据迁移的原子性。在扩缩容期间,数据以Slot为单位进行数据迁移,不会造成Slot分裂,也不会产生业务无法处理的-ASK-TRYAGAIN错误,大幅度提高了业务的稳定性和用户体验。

    说明
    • RESP集群协议中,非数据操作类命令例如PINGINFO等,以及特殊命令如PUB/SUB类和BLOCKING类命令,在Slot迁移后无法被自动重定向,需要应用层定时更新路由表来获取扩缩容后的最新拓扑。

    • 为了保证数据迁移前后的数据一致性,在数据迁移的最终阶段,对应Slot的写请求时延会增加,但不会失败。

  • 缩短数据迁移时长:在扩缩容过程中,本方案采用以Slot为单位进行数据迁移,相较于以Key为单位的数据迁移方案,能够显著提高效率,从而有效缩短数据迁移的时长。

  • 弹性资源伸缩:支持弹性伸缩,满足不同业务场景下的资源需求。

适用实例

  • 实例部署模式为云原生版。

  • 适用下述实例版本:

    • Redis开源版5.0实例(小版本5.2.0及以上)

    • Redis开源版6.0实例(小版本6.0.2.0及以上)

    • Redis开源版7.0实例

    • Tair(企业版)内存型兼容Redis 5.0版(小版本5.0.34及以上)

    • Tair(企业版)内存型兼容Redis 6.0

    • Tair(企业版)内存型兼容Redis 7.0

注意事项

  • 客户端要求:

    • 若实例为集群架构直连模式,需要客户端能正确处理MOVED命令。

    • 若实例为集群架构代理模式,在缩容时会释放部分代理节点,产生连接断开,需要客户端具有断线重连能力。

    • 扩缩容期间,可能会有较高的延迟导致客户端命令超时,需要客户端具有超时重连能力。

    说明

    建议使用推荐的客户端

  • 特殊命令影响说明:

    • 在扩缩容期间使用Blocking类命令可能会产生报错。

    • 在扩缩容期间使用Pub/Sub类命令不提供一致性保证,且视客户端实现可能会产生报错。

  • 本页导读 (1)
  • 特性说明
  • 适用实例
  • 注意事项