教你几种集群方案轻松甩掉存储难题
|
案的优势就在于所有逻辑都是可以控制的,没有第三方中间件干预,开发人员很清楚如何实现分片及路由规则,实现方法完全由自己掌控。 但是客户端分片方案的弊端也是令开发者也是十分懊恼的。由于客户端分片方案是一种静态的分片方案,无论是增加或是减少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优点:
Twemproxy不足:
(编辑:沧州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



