分布式缓存服务 DCS-使用Lettuce连接Cluster集群实例时,规格变更的异常处理:问题分析

时间:2023-11-01 16:16:57

问题分析

Cluster集群规格变更原理:

客户端根据RESP2协议的内容,启动后从Cluster集群获取节点拓扑信息(Cluster Nodes),并将其拓扑关系维护在客户端的内存数据结构中。

对于数据访问,客户端会根据Key值按照CRC16算法进行Hash计算Slot信息,根据内存中保存的节点拓扑关系和Slot的对应信息进行请求自动路由。

在扩容/缩容过程中,当实例分片数发生变化时,存在节点拓扑关系和Slot对应信息的变化,需要客户端进行拓扑关系的自动更新,否则可能造成请求路由失败或者路由位置错误等,造成客户端访问报错。

例如,3分片Cluster集群实例扩容为6分片Cluster集群实例时,节点拓扑关系和Slot对应信息变化如下图所示:

图2 Cluster集群实例扩容前
图3 Cluster集群实例扩容后
support.huaweicloud.com/dcs_faq/dcs-faq-0220613.html