简述redis的sentinel和Twemproxy

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明来源 https://blog.csdn.net/Q176782/article/details/54945805

这里简单说一下redis的sentinel(哨兵)和Twemproxy !


一.sentinel

要谈哨兵,必定要谈到主从复制(master-slave),

当没有主从复制时,大量的请求会加重服务器的负担(如下图)

为了降低对主服务器的读压力,做几个主服务器的复制品,部分请求就会被分担到从服务器,从而降低对主服务器的读压力(如下图)

这样是不是很机智? 但是也存在问题,当主服务器宕机或者下线了,所有请求不就得延迟了?直到等人工来重启服务器,在现在的社会,这种延迟是不可容忍的,所以需要系统自动处理这件事情.

这就是哨兵所做的事情.

其实哨兵不是重启主服务器,而是将从服务器提升为主服务器,集群几乎不会受到影响(如下图),一个哨兵也可以,下面是一个哨兵网络

   ---->  


宕机的s1的被重新启动后只会变成从服务器,不会变成主服务器,此时的主服务器仍是s2(如下图)


主从解决了服务器的读压力,哨兵解决了服务器宕机的问题,还没有解决写的压力

二.Twemproxy

Twemproxy 就可以解决写压力,一个Twemproxy里面有多个服务池,每个服务池监管者一些redis服务器

所有的写请求先经过Twemproxy,再分配给各个服务器(如下图),下图只有一个Twemproxy,也可以有多个

这里说一下当请求的redis服务器无法写处理时 ,Twemproxy的处理(如下图)

注:

①.客户端向Twemproxy  正常请求,Twemproxy转向  服务器A写请求,

③.Twemproxy向服务器A请求异常,其他的正常.

②.多次(次数可以设定)请求服务器A失败.请求会被其他正常的服务器接受处理

④.服务器A重启后,能正常继续处理写请求,


总结:

1.哨兵解决了读压力中的主服务器宕机问题:

2.Twemproxy解决了写压力的服务器宕机问题










猜你喜欢

转载自blog.csdn.net/Q176782/article/details/54945805