00:01
各位同学大家好,下面呢给大家来演示一下哨兵模式,实现反客为主的自动版,自动版呢,它能够后台监控主机是否故障,如果主机发生了故障,然后根据投票的数自动将存库切换为主库,这个过程叫做哨兵模式,说的简单一点,就好比说我现在啊,这个从库给主库派出一个哨兵,哨兵列为就类似于我们想象一下电视剧中啊,经常会播放有这么一个角色,叫做谍报人员,相当于这类角色他主要做一件事情,看我主机是不是还活着,如果主机挂掉了,马上通知我的重机,让它切换为主机,然后最终提供服务。所以这个叫哨兵模式,也是它能实现出我们刚才说那个反客为主的自动版,钢材反为主呢,咱们这里边需要执行命令slave noone才能变成主机,而用这个烧屏模式,它会自动进行切换,那这个怎么做?下面给各位来做个演示,咱看它怎么实现。
01:09
首先第一部分呢,咱先把我们当前这个环境再切换成一主二仆的这么一种状态啊,当然别的状态也可以值一主二仆,它更加的这么一个明显,那咱们首先做切换,我们来做一下。在这里边呢,比如我们先看一下啊,咱先把里边几个服务先给它停掉,我们直接通过这个命令来查看一下red,然后大家看目前里边的几个服务应该我们都已经停掉了,然后停掉之后呢,咱目前启动我们这个三个服务,就是6379 6380,还有这个6381,那我来启动一下哈,第一个red。Server加上里面这个叫ra6379.cf然后启动之后咱们做一个连接杠T6379。
02:05
所以这样的话,我们启动了第一个服务6379,然后我在这里边再启用那个6380,那我们启动一下red-server,加上这个RED6380,然后把它启动,启动之后我们也是做一个连接杠T。6380,然后这里边把它也启动了,启动之后我们再请这个6381用同样的方式,咱们给它快速做一下。6381,然后咱们做一个连接。杠T。6381这样的话呢,我们现在把这三个服务就启动了,然后启动之后呢,咱们让这个6380和6381作为6379的从服务器,那咱给它加入进去,我们用到这个命令叫sli off,然后加上你主机的IP,因为咱都是本地嘛,所以我就127.0.0.1加上这个6379。
03:15
这个6380加进去了,然后加完之后咱再加这个6381,在6381中执行相同的这个语句,咱们一执行,现在完成添加,完成添加之后,我们在6375中查看一下info replication。然后咱们看到这里边目前6379是一个主机,下面有两个从机,分别是6380,六层八幺,所以咱们现在把这个一主二从,或者说一主二仆的环境就给它快速还原回来了,然后培养回来之后,咱们进行下步操作,就配置一下我们这个就是哨兵模式这个过程那怎么做呢?大家看到啊,我这里边步骤写的很完整。
04:02
咱们首先呢,需要建一个配置文件叫cel sentinel啊这么一个配置文件,然后作为咱们哨兵模式配置文件,那这个文件我也见到这个买red里边,那我们来做个创建这个c.CF。咱们在里边创建一下,那我来写一下啊,比如说为了明显的,我就再打开一个客户端的连接,然后进入到我们这个就是文件夹中买red,在里边咱来创建c.CNF。把这个创建,然后创建之后呢,在这个文件中呢,我们只写一句话就可以了,那这句话给各位复制过来,咱们写到这个sentinno的配置文件中,那我们给他拿过来,然后给他写下哈,来看什么意思,第一个sentinel就是做哨兵monitor来做这个监控,监控我的主机买master呢,是给咱们这个监控对象起的一个名称,什么叫起的名称呢?说的通俗点啊,比如大家知道啊,我们在电视剧中呢,经常看到祈愿给一些人起一些外号,比如他的外号叫什么银狐,他的外号比如叫什么那个老狐狸等等啊这master好比说你给它起了一个名字,然后后面加上你这个主机的IP地址,端口号,以及后面加一个值,这个值我们写个一,这一什么意思呢?给大家解释一下啊,前面好理解,主要这一的特点一什么意思呢,它就表示啊,至少有。
05:38
多少个哨兵同意迁移的数量,什么意思呢?给大家说一下啊,比如我们现在啊,这是一台主机。这是一个主,然后这里边呢,有很多的这个从弟啊,比如我们现在假如说啊有两个从,那这里边一什么意思,就是这两个从击里边的哨兵,当这里边我们只是一,只要有轻的一个认为我主机挂掉了,包括他要做操作,那进行切换,如果这只是二,那需要我两个哨兵都同意才进行这么一个切换,比如咱们来个一,就为了模拟效果,这里边啊,我们有一个同意,他就进行切换,如果你二,那有多个切换,我们多个同意进行切换,这是一个,就是有多少个哨兵同意迁移的数量,咱就为了测试,默认写成一,这是我们正么单配置,然后写完之后咱把它保存,退出一下冒号WQ,这样的话,这个配置文件我们就完成了,完成之后呢,咱们就来启动这个哨兵,把它完成我们的操作,那我们来启动一下啊。
06:43
这个启动呢,咱们通过里边这个方式,就是前台启动方式,给它启动一下就可以了,那我们来启动一下哈,咱们看一下在我们这里边呢,就是有这么一个就是。命令叫rabbit sentinel,用这个配置就这个命令来启动我们刚才这个配置文件,那我现在把它我们就来启动一下,咱们看一下里边这个特点啊,那我们来执行一下。
07:12
Sent。然后后面加上咱这配置文件sentinno.cf现在把它回车,然后大家看目前这个C7就是哨兵是不是形容起来了,然后这个哨兵呢,它默认端口,这个端口叫26379,然后下面有它的基本信息,这些信息我们来看一下啊,这里写到说目前呢,它监控的主机叫my master是这个IP端口号,然后它里边有两个从机,分别是6380 6381,主机是6379,这里边是不是有它的信息啊,所以现在我们的哨兵就完成了启动,这各位给家知道哈,比如说这里边呢,他说的很完整啊,就是当你这个比如说主机挂掉,其实他是从这两中选择某一个,所以咱们这个就是主机进切换,这是里边的这个特点。
08:12
然后这个做到之后呢,咱们继续往下来实现,就是这里边呢,还有一个配置,这配置什么意思呢?给大家今天解释一下啊,其实它是为了我们做那个选举使用,比如现在我主机挂掉了,那我选择哪一个呢?它有一定的规则,而这个设置跟你的规则有关,这咱一会儿做个说明,咱们先往下实现,那下面怎么做呢?给大家点这个效果,比如我现在啊,这里边我们有一主两从,当现在我的主机挂掉之后,咱们看它会有什么特点,那咱们来测试一下啊,比如说我给它换一种显示方式,咱就直接把我最后那个打开,呃,就应该就是上面这个啊,Sentin一部分打开这里。这是3000,然后咱们来到这个6379这个主服务器中,把它关掉,就让它,比如它挂掉了,我们来一个。
09:09
刹车档现在回车,然后大家看啊,目前这个主机是不挂掉了,挂掉之后咱们稍微等一会儿,这里边哨兵就会监控到,监控到之后里边会有些相关操作,比如现在我这里边就是很多的从机看到这个主机挂掉了,那他们是不是要采取行动了,好比说我们古代这个皇帝啊,他下面有很多儿子,比如他个皇帝要死的话,那儿子肯定要争权夺位嘛,啊,比如著名的什么九王夺嫡等等这个过程,所以现在好比说哨兵已经知道了,然后大家看啊,目前这里边是不是有信息输出啊,那咱看一下这信息什么意思啊,咱给他调的大一点,看里边它发生了什么事情啊,就好比说现在啊进行了公斗,然后发生一些事情。咱们看什么事情啊,咱们从上往下看,这里告诉我们啊,说目前呢,在这个过程中,它监控的这个就是主服务器,然后主服务器这里是不是它挡掉了,就是6379服务器它已经死了,已经挂掉了,然后挂掉之后呢,它里边要进行切换,那怎么切换的呢?咱们往下看啊,里边有这过程。
10:19
大家看啊,咱们往下找看它是怎么切换的,呃,这个小点给它拉的大一点啊,有些值我们看不到。然后各位啊,往下看,刚才我们看到是这里啊,就是6379它已经挂掉了,然后下面呢,他要选择某一个从机作为咱的这个主机,就是进行一个切换,那我们看啊,他选择了谁呢?他把这个6380是不是作为咱的这个主机,就是用它进行的切换,然后切换之后这里边有它下面的从服务器啊,比如它下面有6381是它从服务器,另外你看啊,这里边还有一个6379什么意思呢?给大家解释一下啊,就是里边这过程。
11:02
我在图上画一下,比如现在我们的主机是6379,然后咱们两重冲击,一个是6380,一个是6381。这两个,那这过程中呢,因为咱们配置的这个叫哨兵。这个东西,而这里边哨兵负责就是监视一下主机是否挂掉,而咱们刚才主机是不是挂掉了,所以哨兵就监控到了,监控到之后他从6380和6381中选几台从机对咱的主服务器就进行这么一个切换,而他选举的就是我们这个6380,你看啊,Select的是不是选择了,选择这台服务器做单主机,比如说现在切换到了6380所你的主服务器。这位置做了一个切换,作为你的主机,而切换之后呢,他把6381肯定还是作为它的从机,但是这是是不是还有6379,那6379怎么做呢?往下看啊,这里写到6379也作为它的服务器,但是目前的637有这个服务器,是不是一个挂的一个状态啊,所以他告诉我们是一个挂的状态,比如这个服务器它里边也做一从服务器,但是它已经挂掉了,比如你现在把6379给它重启,那他也会再作为从服器,他不会成为主机,就是这个新皇帝已经登基了,你的老皇帝只能是俯首生臣了,就是这个过程,所以这是我们说的哨兵的过程,那咱们现在替换之后,我们可以查看一下啊,比如说我把这个咱可以打开啊。
12:40
打开一下,咱们先来到这个6381把这个看一下,就是来一个info replication。然后咱们看啊,6381呢,目前肯定是一个总服务器啊,然后它的主机谁是六三啊,就是这个,这是6381啊,它的主机是6380这里边啊,6381还是存储储器,刚才我说这过程,然后咱们现在再看一下这个6380,看它有什么变化,Info replication。
13:11
各位看到啊,6380你清楚看到变成什么,是不是主机啊,它下面从机是不是有6381,所以这个就完成了切换,然后切换之后,比如咱们进入演示,我把这个6379的服务器再给它重新启动起来,因为刚才它已经挂掉了,比如现在它里边醒来了,再重新启动,咱们启用这个叫RED63。啊,6379。然后咱们做一个点击下段杠T63。七九。连接之后我们用这个音符。Replication。然后大家看啊,6379怎么样了,变成是不是从服务器,它的主服务器就6380,比如说现在啊,你是一个老皇帝,你已经下去了,你再回来之后,你不可能再当皇帝,只能当新皇帝的臣子啊,只能这过程,然后咱们再看6380这个新的皇帝,他里边的特点,大家看啊,新皇帝它里边肯定是一个主机,下面有两个臣子,就是6381,还有那个老皇帝6379。
14:26
这么说各位应该更好理解啊,所以现在咱们就完成了这个哨兵的这个配置,这个过程我们就最终演出来了,所以大家把这个头知道啊。然后演示之后呢,我们再往下看啊,就是这个过程中呢,其实我们做这个主从本身是有一个缺陷的,或者说有一这么一个缺点,这缺点是什么呢?给大家说一下,叫做复制延时,这缺点应该很好理解,因为我现在每次写是不是在主机操作呀,主机是不是要复制到我的从绩啊,这过程就算你再快,是不是肯定会有时间的这种延迟,所以这个叫复制延迟,我这里写到啊,由于所有的写操作都是先在主机上操作,然后再同步到从机使用,所以说从主机同步到从机会有一定的延迟,特别是当你系统很繁忙的时候,比如你的网络很慢的时候,那这时候延迟会更加严重,而此类物的机器数量也会使这个问题更加严重,假如现在一台主机有很多台重机,那它复制延迟是会更加严重,所以它本身有这么一个缺点。
15:34
这各位得知道啊,这样的话,咱们把哨兵矫正配置,然后完成配置之后呢,我这边这张图大家看一下啊,其实就刚才我们说这过程啊,首先我们看第一个,第一个是什么呢?刚才我提到,因为我最开始的时候呢,6379是主服务器,然后638081是从服务器,当七九挂掉之后,从8081中是不是选举一个,所以咱的主服务器,但是这个选举是按照什么规则进行选举的呢?给大家来说一下这个选举的规则,咱们看这张图上啊,里边就是有三个条件,第一个优先级靠前的优先选举,那什么叫优先级靠前的在配置中呢?有这么一个配置,咱们看一下啊,就这个配置。
16:20
比如说啊,给大家看一下这个配置文件,咱们找配置文件我们来看一下啊,比如说我随便找一个啊,咱先把它退出啊,然后咱们编辑一下red点直接看这个CF了,在里边我们直接搜索一下这个配置部分,然后大家看啊应该啊直接做那个s slave啊sli。咱们来搜索一下啊,这里边呢,这个配置是什么呢?其实就是这句话啊,我们看啊,它表示啊里面有个值,这个值呢,如果它这个值越小,优先级越高,比如说我这里边两台从服务器,一个值是100,一个是十,那十肯定是优先进行选择,它里边是这个特点,咱们也到配置文件中,我们来找一下啊,应该是有这个配置,我们来找一下啊,比如现在我把它那个行号先打开啊。
17:16
然后打开之后我们找一下里面这个配置啊,应该在比较靠后的位置啊,因为我们现在用的是这个red的最新版本,我课件中的版本可能稍微低一点,所以它的配置名字可能不太一样,我们来找一下啊,我记得应该是在600行左右的样子啊,咱们看一下应该在类似这个位置。我们找到啊。应该在这个地方啊。啊,咱们看啊,啊在这里啊,我们看啊在red呢,6.2.1的时候呢,它的名字这个名字relic pro啊,就这个名字pro,然而我们之前那个版本中,它叫这个sli pro啊,所以它的名字不一样,但是东西都指这配置,所以你看到啊,在这个配置文件中呢,它默认的值是是不是100呀,这个值就是越小优先级越高,比如我们现在两个这个就是重复器。
18:14
假如说我在6380中设值是100 6381中设值是十,那这十肯定是优先进行选择,所以这是它的第一个选举规则,这个我也知道,然后再看第二个啊,如果前两值比如说相同,假如说两服务器这值都是100,那他们都一样的,那这里边考虑第二个就是他们的偏移量谁最大,可以先选举什么叫偏移量的,就是我两台重复器中谁和主机的数据同步至最高,比如现在主题中有十个数据,它里面有十个,它有九个,那十个应先选择,但如果两个里边呢,都是十个,那怎么做代考的第三个,第三个是什么呢?选择run ID,最小的总服务器,什么叫run ID呢?就是redid呢?每次启动会随机生成一个40位的这个RAID。
19:05
这个值是随机生成的,所以最后一次看这个RA谁最小,就好比说最后一次呢,那就是随机的,谁先谁后不一定选到谁也不确定,所以照这个规则选择哪台从服务器,所以咱这个主机注意这个配置啊,在新版本中我们刚才看到它叫这个名字。Replicate里边这个pro啊,Pro这个名字,而之前版本中跟他不太一样,所以这个大家找的时候特别注意一下啊,它的名字发生点变化。所以这样的话,我们说的第一个啊,然后第二个刚才提到,比如现在我们找出那个新的从服务器作为主机,然后其他的作为它的从服务器,而你之前的主机肯定还是作为那个从服务器,也就是说你的新皇帝登基了,你的老皇帝只能向新皇帝俯首称臣,这是他的一个过程,刚才我们都演示过了,所以这就是针对哨兵模式的一个特点,大家把它知道啊。
20:03
而这个模式中呢,如果说咱们写Java代码该怎么识别它哪个是主,哪个是从的,这过程很简单,其实咱就改一下这个就是连接池部分就可以了,大家看啊,我们用到这个电池JD sentinno,然后在里边加上IP端口号,这端口号是你的S,那端口号刚才咱们看到就是里边那个26379,然后下面我们new这个的时候指定你那个名字,刚才咱配置文件中是不是叫买master,最终通过它。得到咱们的DDC就能实现出我们主从复制或者主从操作特点,这各位知道就可以了,这比较简单,所以咱们现在就把这个哨兵模式我们就完成了配置,各位把我刚才说这过程给他牢牢记住,特别注意这个配置啊,它有一点点变化。
我来说两句