加入收藏 | 设为首页 | 会员中心 | 我要投稿 沧州站长网 (https://www.0317zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

教你几种集群方案轻松甩掉存储难题

发布时间:2021-04-22 15:40:23 所属栏目:传媒 来源:互联网
导读:案的优势就在于所有逻辑都是可以控制的,没有第三方中间件干预,开发人员很清楚如何实现分片及路由规则,实现方法完全由自己掌控。 但是客户端分片方案的弊端也是令开发者也是十分懊恼的。由于客户端分片方案是一种静态的分片方案,无论是增加或是减少Redis

案的优势就在于所有逻辑都是可以控制的,没有第三方中间件干预,开发人员很清楚如何实现分片及路由规则,实现方法完全由自己掌控。

但是客户端分片方案的弊端也是令开发者也是十分懊恼的。由于客户端分片方案是一种静态的分片方案,无论是增加或是减少Redis实例的数量,都必须要开发者手动调整分片程序,对开发者的依赖很强;其次在运维上,该方案运维性较差,一旦集群数据出现问题,就需要开发人员和运维人员共同解决,在不同的客户端程序中,维护相同的分片逻辑成本很大,需要消耗巨大的开发成本才能保证两套业务系统分片逻辑一致。所以,客户端分片方案并不适合中小型的企业使用。

基于代理的分片

基于代理分片就是客户端发送请求到一个代理,由代理来解析客户端的数据,再将请求转发到正确的节点,最终将结果回复给客户端。常用的基于代理的分片方案有两种,Twemproxy、codis。

Twemproxy

Twemproxy是一款由Twitter开源的redis proxy方案,在Twitter、Yahoo都有使用。当Twemproxy工作时,Redis客户端会把请求发送到Twemproxy,Twemproxy会使用一致性hash算法,根据路由规则发送正确的Redis实例,最后Twemproxy再把结果返给客户端,从而实现Redis集群。

由于Twemproxy是单线程方案,所以只能使用单核cpu,如果前端含keepalive或haproxy相关代理,可以为Twemproxy做1+1准备。

当Twemproxy应用于多台Redis服务器时,那么实现的性能只能达到单台Redis服务器80%,剩余20%性能损耗。Redis-Sentinel是Redis官方推荐的一种高可用性解决方案,当用Redis做Master-slave的高可用方案时,如果Master宕机了,Twemproxy会订阅Sentinel,完成主备切换。由于Redis-sentinel本身是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后可以进行自动切换。

Twemproxy优点:

  • 支持Redis和memcached两种集群代理;
  • 后端Redis和memcached无需任何改动,只需要提供IP和端口给Twemproxy即可,操作简单;
  • 支持无效Redis实例的自动删除;
  • 支持状态监控......

Twemproxy不足:

  • 无法动态扩容,如果需要扩容功能,必须研发人员手动迁移,比较繁琐;
  • 由于Redis客户端的请求都需要经过Twemproxy才能到达Redis服务器,期间难免会产生性能损失;
  • 无法平滑地扩容/缩容,对于运维人员来说,

(编辑:沧州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读