加入收藏 | 设为首页 | 会员中心 | 我要投稿 周口站长网 (https://www.0394zz.cn/)- 数据采集、智能营销、经验、云计算、专属主机!
当前位置: 首页 > 站长资讯 > 动态 > 正文

学会用 Go 创建命令行工具

发布时间:2021-02-03 14:27:14 所属栏目:动态 来源:互联网
导读:以上的命令,简单解释一下slaveof 就是让两个slave节点去复制container_name为redis-master的节点,这样就组成了一个简单的3个节点的主从架构 然后用命令行进入当前目录,直接敲命令docker-compose up即可,剩下的事情交给docker-compose去做就好,它会把我

以上的命令,简单解释一下slaveof

就是让两个slave节点去复制container_name为redis-master的节点,这样就组成了一个简单的3个节点的主从架构

然后用命令行进入当前目录,直接敲命令docker-compose up即可,剩下的事情交给docker-compose去做就好,它会把我们所需要的节点全部启动起来。

此时我们还需要拿到刚刚我们启动的master节点的IP,简要步骤如下:

1.通过docker ps找到对应的master节点的containerID
 

通知调用的客户端master发生了变化

通知其余的原slave节点,去复制Sentinel选举出来的新的master节点

如果此时原来的master又重新恢复了,Sentinel也会让其去复制新的master节点。成为一个新的slave节点。

硬核教程

硬核教程旨在用最快速的方法,让你在本地体验Redis主从架构和Sentinel集群的搭建,并体验整个故障转移的过程。

前置要求

  1. 安装了docker
  2. 安装了docker-compose

准备compose文件

首先需要准备一个目录,然后分别建立两个子目录。如下。
 

大部分?大哥这可是要上生产环境,大部分这个数量未免也太敷衍了,咱就不能专业一点?

前面提到的大部分哨兵同意涉及到两个参数,一个叫quorum,如果Sentinel集群有quorum个哨兵认为master宕机了,就「客观」的认为master宕机了。另一个叫majority...

等等等等,不是已经有了一个叫什么quorum的吗?为什么还需要这个majority?

你能不能等我把话说完...

quorum刚刚讲过了,其作用是判断master是否处于宕机的状态,仅仅是一个「判断」作用。而我们在实际的生产中,不是说只「判断」master宕机就完了, 我们不还得执行「故障转移」,让集群正常工作吗?

同理,当哨兵集群开始进行故障转移时,如果有majority个哨兵同意进行故障转移,才能够最终选出一个哨兵节点,执行故障转移操作。

主观宕机&客观宕机

你刚刚是不是提到了「客观宕机」?笑死,难不成还有主观宕机这一说?

Sentinel中认为一个节点挂了有两种类型:

  • Subjective Down,简称「sdown」,主观的认为master宕机
  • Objective Down,简称「odown」,客观的认为master宕机

当一个Sentinel节点与其监控的Redis节点A进行通信时,发现连接不上,此时这个哨兵节点就会「主观」的认为这个Redis数据A节点sdown了。为什么是「主观」?我们得先知道什么叫主观

未经分析推算,下结论、决策和行为反应,暂时不能与其他不同看法的对象仔细商讨,称为主观。

❞简单来说,因为有可能「只是」当前的Sentinel节点和这个A节点的网络通信有问题,其余的Sentinel节点仍然可以和A正常的通信。

(编辑:周口站长网)

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

    推荐文章
      热点阅读