哨兵集群原理

哨兵集群原理,第1张

Sentinel(哨兵)进程的作用:

1.监控(Monitoring): sentinel会不断地检查你的Master和Slave是否运作正常

2.提醒(Notification):当被监控的某个Redis节点出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知

3.自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移 *** 作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master;当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用现在的Master替换失效Master。Master和Slave服务器切换后,Master的redis.conf、Slave的redis.conf和sentinel.conf的配置文件的内容都会发生相应的改变,即,Master主服务器的redis.conf配置文件中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换。

主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断

客观下线 (Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的服务器下线判断。(一个 Sentinel 可以通过向另一个 Sentinel 发送 SENTINEL is-master-down-by-addr 命令来询问对方是否认为给定的服务器已下线。)

https://www.cnblogs.com/JJY-/articles/12066861.html

修改金色哨兵程序。截止到2022年12月3日,在漫威中,杀死金色哨兵的方法是修改金色哨兵程序。漫威指漫威公司所创造人物组成的漫威宇宙,漫威漫画公司,是美国漫画的巨头之一,漫威创建于1939年,1961年正式命名为Marvel。

所谓“哨兵”就是用一个特殊值来作为数组的边界,使用“哨兵”可以少用一条判断语句,所以可以提高程序的效率。

比如从整数数组arr中,查找有没有整数num。

应用:假设一个乱序数组,需要查找一个元素是否在该数组中,这时需要用到顺序查找,也就是遍历数组。

一般情况下我们会写下如下代码:

int Sequential_Search(int *a,int n,int key)

{

//数组从1开始

int i

for(int i=1i<=ni++)

{

if(a[i]==key)

return i

}

return 0//查找失败

}

有的数据结构书上,会运用哨兵元素,改成这样的代码:

int Sequential_Search2(int *a int n,int key)

{

int i=0

a[0]=key//哨兵

i=n

while(a[i]!=key)

{

i--

}

return i//返回0就是查找失败

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11294732.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存