Redis Cluster模式与Proxy模式比较

 

转自 https://www.iteye.com/blog/ballenlee-2514207

1. cluster模式

优点:

  1. 客户端(Jedis)直连redis节点,性能会更好

缺点:

    1. 客户端(Jedis)直连redis节点,意味着客户端就需要保存集群所有节点信息,当集群比较大100-200个master节点时,这个数据量会比较大

    2. 当集群规模比较大,100-200个master节点时,算上从节点,要到200-400个节点,互相ping pong的健康检查网络开销会非常大

 

2. proxy模式

优点:

    1. 客户端(Jedis)直连有限的proxy节点,会比较轻量和简单

    2. 集群规模理论上可以非常大,因为proxy对外隐藏了集群规模

缺点:

    1. 多了一层proxy访问,性能会有影响

    2. 需要第三方的proxy实现,集群水平扩容时proxy要想平滑动态更新集群配置,需要开发工具支持

 

3. 方案

    1. 采用 twemproxy做为代理,去zk获取集群配置

    2. 集群通过sentinel保证高可用

 

4. 水平扩容

    1. 开发工具,伪装成集群的slave节点,从而拿到RDB文件和增量更新数据,路由到新的集群(此处的路由算法要保证和twemproxy实际实现的一致)

    2. 当开发工具评估两个集群基本一致(实时更新数据较小、偏移量追平等因素综合考虑),更新新的集群配置到zk

    3. zk会动态通知twemproxy,由于twemproxy的路由算法跟4.1步骤相同,基本就可以保证平滑迁移

posted @ 2022-01-28 21:28  daniel456  阅读(2126)  评论(0编辑  收藏  举报