标签:提前 port twemproxy 根据 png 隔离 基于 mic 实现
1.是无感知,即对redis集群的用户来说服务ip和port保持不变
2.弹性扩容,指的是在需要时刻可以按照业务扩大redis存储容量。
最好的解决方式
对客户端无感知,即客户端不需要任何操作就实现了redis集群的扩容
其中twemproxy-A代理后面接了3个redis实例,作为集群使用,如果1个redis示例有10G存储能力,
那么目前这个架构具有10G*3=30G的存储能力,其中根据twemproxy的配置来实现负载均衡。
这个方案扩容是最直接的,即在代理后面直接新加一个redis-4,来扩充这个redis集群的容量。
这种方式最直接,但是问题也比较大,主要有2个:
为了解决上述方案的不足,本文提出了一个新的方案如下
这个方案有1个关键点,即怎么实现旧的数据走之前的路由,新的数据走redis-4的路由,这就用到了
hash_tag的预分配(即提前占坑的思想)技术,使用hash_tag作为二级twemproxy的路由标示,具体操作如下:
注意点如下:
好处:
如图4所示:
最终的方案新增了一个VIP,用这个VIP来解决无感知的问题,即扩容对客户端来说是无感知的。
无感知的解决类似”双buffer交换“的思路,即上图的twemproxy-C和twemproxy-D,当需要重启twemproxy代理时,
可以进行如下操作:
当还需要重启代理时,以此循环。
基于twemproxy和vip实现redis集群的无感知弹性扩容
标签:提前 port twemproxy 根据 png 隔离 基于 mic 实现
原文地址:https://www.cnblogs.com/wendy009/p/11383655.html