国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

分布式Redis深度历险-Sentinel

发布时间:2019/07/29标签:   服务器    点击量:

原标题:分布式Redis深度历险-Sentinel
试想下,在一主一从或一主多从的构造下,假如主效劳器挂了,全部集群就弗成用了,单点成绩并没有处理。Redis应用Sentinel处理该成绩,保证集群的高可用。怎样保证集群高可用保证集群高可用,要具有以下才能: 能监测效劳器的状况,当主效劳器弗成用时,能实时发觉 当主效劳器弗成用时,抉择一台最适合的从效劳器替换原有主效劳器 存储雷同数据的主效劳器统一时辰只要一台要完成上述功效,最直观的做法就是,应用一台监控效劳器来监督Redis效劳器的状况。

分布式Redis深度历险-Sentinel
监控效劳器和主从效劳器间保护一个心跳衔接,当超越必定时光没有收到主效劳器心跳时,主效劳器就会被标志为下线,而后告诉从效劳器上线成为主效劳器。
分布式Redis深度历险-Sentinel
当本来的主效劳器上线后,监控效劳器会将其转换为从效劳器。
分布式Redis深度历险-Sentinel
依照上述流程仿佛处理了集群高可用的成绩,但仿佛有那里错误:假如监控效劳器出了成绩怎样办?咱们能够在加上一个从监控效劳器,当主效劳器弗成用的时间顶上。
分布式Redis深度历险-Sentinel
但成绩是谁来监控’监控效劳器’呢?子子孙孙无限尽也。。先把疑难放在一旁,先来看下Redis Sentinel集群的完成Sentinel和上一大节的主意一样,Redis经过增添额定的Sentinel效劳器来监控数据效劳器,Sentinel会与全部的主效劳器和从效劳器保留衔接,用以监听效劳器状况以及向效劳器下达下令。
分布式Redis深度历险-Sentinel
Sentinel自身是一个特别状况的Redis效劳器,启动下令:redis-server /xxx/sentinel.conf --sentinel,sentinel形式下的启动流程与一般redis server是纷歧样的,比方说不会去加载RDB文件以及AOF文件,自身也不会存储营业数据。与主效劳器树立衔接Sentinel启动后,会与设置文件中供给的全部主效劳器树立两个衔接,一个是下令衔接,一个是定阅衔接。下令衔接用于向效劳器发送死令。定阅衔接则是用于定阅效劳器的_sentinel_:hello频道,用于猎取其余Sentinel信息,下文会具体说。猎取主效劳器信息Sentinel会以必定频次向主效劳器发送Info下令猎取信息,包含主效劳器本身的信息比方压服务器id等,以及对应的从效劳器信息,包含ip和port。Sentinel会依据info下令前往的信息更新本人保留的效劳器信息,并会与从效劳器树立衔接。猎取从效劳器信息与和主效劳器的交相互似,Sentinel也会以必定频次经过Info下令猎取从效劳器信息,包含:从效劳器ID,从效劳器与主效劳器的衔接状况,从效劳器的优先级,从效劳器的复制偏移等等。向效劳器定阅和公布新闻在怎样保证集群高可用大节留下了一个疑难:用怎样保障监督效劳器的高可用? 在这里咱们能够先给出简略答复:用一个监督效劳器集群(也就是Sentinel集群)。怎样完成,怎样保障监督效劳器的分歧性临时先不说,咱们只有记着须要用多少台Sentinel来保证高可用,那一个Sentinel是怎样感知其余的Sentinel的呢?后面说过,Sentinel在与效劳器树立衔接时,会树立两个衔接,此中一个是定阅衔接。Sentinel会准时的经过定阅衔接向_sentinel_:hello频道频道发送新闻(对Redis公布定阅功效不太懂得的同窗能够去去懂得下),此中包含: Sentinel自身的信息,如ip地点、端标语、设置纪元(见下文)等 Sentinel监督的主效劳器的信息,包含ip、端口、设置纪元(见下文)等同时,Sentinel也会定阅_sentinel_:hello频道的新闻,也就是说Sentinel即向该频道公布新闻,又从该频道定阅新闻。

版权信息Copyright © IT技术教程 版权所有    ICP备案编号:鲁ICP备09013610号