00:05
OK,嗯,今天我们抽一点时间啊,抽一点时间来来录一下这个CCR啊假日这个是跨集群复制啊,这个是ES。六点啊,6.7。ES6.7白金版。啊,具备的这样的一个新的功能。啊。是6.7以后的八门的白金板才具有的啊,就是比如说666.4.3啊,5.6.2是吧,这是白金板是都不具备这个功能的。嗯。那么在我的专栏里面。我自己呢,也会也之前呢,也也也讲过这些的一些一些文章啊,一些文章,一些文章啊。所以。对于一些基础入门这这一块来说呢,还是啊可以帮助到大家啊,如果大家需要的话啊,可以到这里来访问一下啊,只不过这些集群的一些都是我自建的,我自建的一些集群啊,自建的一些集群。
01:14
的一些操作,一些操作。好,这这这个我就不多讲了,今天我主要是讲的是。呃。那我我现在主要讲的就是就是在生产里面,生产集群上面,就是如何去做这样的一个对吧,主备切换,因为本身CCR就是啊,它会有一个这样子的一个是吧?啊。Leader跟follow的这样的一个概念啊,就远程集群是leader索引,来本地集群是follow索引,Follow索引会自动去复制leader索引这个数据,对不对。啊,因为本身复制它是一种主动与被动的,对吧,就是只要啊。
02:05
啊,网络联通,那么本地的附录索引会自动的去关联远程的你的索引啊这样的一个。啊,这样的一个一个一个操作,今天我主要是想啊,基于这个。想的就是生产集群如何去做这样的一个,嗯。主被切换啊,就是当主。主机群就是力的集群对吧,这群它的这个数据。诊断了。那被如何操作才能够及时的。保证这个业务的这个高可用不存档对吧。那么这个今天我就是印了两个这样的集群啊,两个集群。
03:01
一个是上海,一个是北京啊,上海的这个集群就是呃。都是7.5.1啊,都是7.5.1,好吧,都是啊。白金吧,啊都是17.5D白金吧,好吧。就是这个,这个就是上海啊,这个就是北京对吧。比比比较这个啊,北京对吧,北京。那么我们知道。就是说呃,如果是呃,CCR还是CCS,它的这个基础就是。呃,Remote就是远程集群。
04:00
继续。所以我们在做这些操作的时候啊,我们来做这些操作的时候,我们的。我们的这些这些基本的这个前提就是。远程集群网络要通对吧,网络要通啊,远程集群网上要,那我们这里是吧,我就没有通过API去操作了,我直接就通过那个什么图形界面对吧,图形界面啊就是。K8的上面自己有个是吧,如。对吧。就是如果说我两个集群互为主备,那我就肯定要两个都要贴上去,对吧,两边都贴上去,所以我在这个啊。在这里我添加的是。啊。对面的,对面的。互为组成嘛,对吧,就是添加对面的。集群就是添加那个,呃,北京的对吧,北京的是北京吧。
05:02
OK,就添加北京的是吧,咱们就添加北京的作为这个原生集群,那么这样子的话,我本地就是一个啊follow的对吧,Follow的啊,然后对的就是leader的是吧,那我这样子啊,同样的我上海。啊,天天的我上海。我也是这样的一个是吧。对不对,你看这个做好了对不对,所以。这样子的话,我本地也是一个follow。对吧,这个就是。就是一个follow,然后这边呢,就是一个leader对吧,OK。我有点模拟嘛,对吧,我先把这个基础条件先搞好,就是一个副为主备。对吧,复位组呗。呃。四位组备行建好了对吧,那我们就开始吧,那个。
06:00
哦,这个戏子啊,戏子就是节点的这个。节点的这个腾讯IP,那不管你有多少个,你就写一个就行了,对吧,至于啊,你要怎么去获得这个。啊,获得这个。腾讯IP就直接是get。对吧,直接get loads OK,这样子咱们就出来了,对吧,你有多少个节点,它这里都会显示transport,填这个对吧,当然这个90点是随机的好吧,有时候有些机器它不是随机的。对吧,OK,那我们就这样子,就互为主备的加好了,对不对,行吧,那我们就来模拟一下。模拟一下好吧,模拟一下。好,记住啊,这个是上海的。WY,上海的,呃,不不北京的,这个是上海的对吧,我这里写了对吧,北京啊,不是上海北京对吧,上海是主,北京是北OK。
07:08
回到回到,回到上海。那么我们怎么样去模拟这个过程呢?你看首先这样子哈。首先。首先对吧,因为我们就是说。Follow索引对吧,他是。只读的。它是对立的属性的一个一个就是复制吧,复制对吧,复制。那么我们在。创建了这个啊,比如说我现在是上海集群,对吧,我现在我在写啊,我在写啊,我在写我写的,我比如说我写我就写哪个呢啊。我就写这个N几克。
08:02
Server对吧,那几个server里面大概有五条数据。对吧,我的数据。我写这个。对吧,里面有五条数据,好,我就在写。那我在写的时候。我是不是我开启了这个那个什么复制,对吧,那我就看一下复制有没有开启。对吧。啊,远程集群来自这里的,对吧,来自上海的leader是这个对吧,是一个active的一个状态对吧,那么我通过在这样子的一个状态下面去创建这个负属性的时候,它是不是已经就自动的复制过来了,对吧?那我们看一下看一下这个。好看一看这个到底有没有,有四五条对不对,四五条写那五条,那我们就接着写呗,对吧,接着写好写一条。
09:03
模拟一下嘛,对吧,就是。好那几个色。OK,我再写一条好吧,比如说。六好。比如说是啊,比如说job对吧,啊,我们们我们搞一下好吧,就big好big,比如说。我们差一条六条。是不是我在这个上面就创建了,就已经又加了一条新数据,就一直他在写,那我们看这俩来了没有,好我们那个刷新一下好吧,刷新一下load一下。好来了吗?可能还没到是吧,还没到我这那个别着急好吧。
10:00
OK,已经来了六条对不对,行,那就是说明我们这个是实时同步的,那边的血,这不就啊上海的血北京就来了,到上海的写了,那么这个时候。这时。啊,我的北京那个什么。呃,上海这边这边因为这个某种原因对吧,某种原因。写不进去了,对吧,写不进去了。那我如何保证业务的一个高可优呢?对吧?啊,就我我这边是手段的去模拟是吧,当然实际上面在一些业务层的话,肯定是有代码加一个判断是吧?加个代码或者说发成代码加前面加个判断,去判断哪个集群中或者写到里面去注意一下是吧?那这是手动模拟,那我们如何去手动模拟呢?做哪些操作呢?对吧,这个。那我是不是好。好,我现在就做一些这样的操作,因为follow索引的话,它是只读的,他如果说这个时候出问题了。
11:03
那我肯定是需要做一些新的写入的,为什么要做新的写入,我主要是为了避免,避免这个出现不能写的问题,对不对?对。就是为了避免这个,呃,附了鼠眼啊,当然如果说你要把附了鼠引去做一个啊。取消它的只读对吧,让他写的话,需要经过那么啊四到五步的一个API的操作。啊,当然你在图形界面,图形界面下面也是可以操作的,对吧,也是可以操作的,你管理一下对吧,让他进行一个。啊啊,应该是这里吧。进行复制。应该是比如说这里啊,让它啊先暂停复制,然后no follow,就这样子的话就就不跟随了,对不对,不跟随了。
12:06
啊,这也是可以的哦。这也是可以的。那么实际上面。要做到这一步的话,我看看那个那个步骤在哪里啊。好,实际上面如果说要做到那一步的话,我们其实是只要只需要做这么四步知道吧,所以说四步就是在这个上面去做这么几步,对吧,啊就啊先给它暂停对吧,然后把它这个关闭掉,然后follow,然后再open对吧,这样子四步它就开启了这个。啊,付了所有的这个。写啊写就是。啊,可以往这里面写,那我这里呢,没有去这样去操作,之前操作过啊,我总觉得这样的话,应该是不太符合这个呃逻辑啊。好路记。
13:06
所以我这边就啊。新起了一个,新起了一个,好回到之前啊好,上海的挂了对吧,上海的挂了,然后回到组的组的。回到北京,好北京的时候,这个时候我又我又我又洗了一个对吧,好,我又那个。北京嘛,对吧,北京OK,我们看一看。看一下所有啊。于是我就写了一个,啊,恩,北京的。对吧,一个是北京的。北京的这样的一个。呃,就是在这个车是北京区嘛,在北京区,因为这个车写入骑到北京来了嘛,是吧,骑到骑到北京来了。嗯。
14:00
对就北京,然后呢,我我又插入了新的数据文档,对吧,文档。就是模拟是吧,上海故障了,北京开始写,那么北京写了,写了大概写了这么多数据,我这里就打上100万条数据是吧,100万数据OK,写写写,这个时候上海恢复了。啊,到了北京的时候啊。因为。这也是复为力的嘛,组织嘛,是吧,OK好,那这个时候他上海这个时候恢复了,那我是不是也要去建立一个。CC。就是基于之前在北京的这样的一个。是是吧。对不对,那这个时候就来了,对吧,就北京的北京就来了,因为我之前我已经写了100万,那这个时候我是不是。写了100万对吧,写了100万条。啊,我写了100万条,然后呢,呃,是不是这个新的这个full属音,他去追平那个例子输音的话。
15:02
追捧这个水了,肯定是需要时间的是吧,比如说要一两个小时对吧,那就让他去同步啊同步。同步那OK,同步的时候我们看到那个,呃,N北京follow对吧,然后然后一直在同步,好,然后这里达到了100万条的时候好。那我是不是又得。因为那个时候是作背的嘛,作背的那角色不能不能随便变,那我们就切过来对不对,好,那我们就把所有又重新新进一个锁有。城西这个水就是上海N几个上海。就受伤。啊就就切过来。好吧,切过来的时候就又又切了一个新的主引嘛,比如说N几个设对吧,那这个这个上海它又是一个立的集群,它已经好了,那这个时候他这个是不是我也得搞一个。C对吧,所以说。上海这边也需要有一个follow,对吧,我又建立了一个follow,是针对这个新西路的上海的一个follow。
16:06
是吧了。那么这样子的话,就完成了这样的一个高速的一个切换。但是切换的时候我们会发现对吧,发会发现呃。啊,最终北京的有这么多个缩影,对吧,上海呢,也有这么多个缩影。对吧,这么多数据,那么对于前端业务来说,我们写写,虽然写是写出不同的属性是吧,肯定是有做一做一个标记,但是。查询的时候啊,我们可以通过别名来查询,对吧,通过别名来查询。对吧,通过别名的查询。通过别名的查询,那么别名查询,那我们怎么搞?对吧,我我我甚至于更多的熟练,那我就管你别面嘛,对吧,冰面OK,那行,那我就。
17:01
这样子。啊,我就在这个北京啊,就是北京嘛,啊就是上海啊上海集群,那我就在上海集群,现在是主题曲嘛,是吧,那就是通过别名来查询嘛,对不对,通过别名的查询行,那我就加个别名吧,OK。好,那我们就加别人对吧,就是通过这样的一个API啊,陆陆续续去加对吧,实际上面就是my index my index my index对吧。加别名,加个别名,然后呢,我们通过别名去查的时候。好。也能够查到对吧,就能够查到相关的这个,不管是来自哪个面就是。上海集群,不管是你是说上面的还是写上面的,我都能够查到对吧啊。这个是别名对不对,那我们可以通过这个别名,我查看到这个别名到底关联的是什么东西呢?对吧,这个通过这个API我们可以看到这个myex这个别名,它关联了哪些首眼第一个follow。
18:14
Follow。但是好像我并没有关联这个负的属性,因为负的属性它是不会不能够去直接这样去关联的。它是直接就。四二。直接就是那个复制过来的,因为follow它会跟need一样的啊,Leader一样的,它直接复制过来的,然后还有一个上海对吧,上海那这个是哪里来的啊,这个索引是我在这边啊。是我在那个。哦,这个索引是我在那个。这边啊,在这个上海集群这加加进来的。是吗?加进来的就是。在这里进来的对吧。
19:00
对不对,这样子在这边加起来,因为follow它实际上面他会去啊,跟随这个leader去复制,包括边面什么的。对吧。就这样这个过程,那这样子的话,我们在这边也能够查到,对吧,这也能够查到,只不过它的索引就是follow了,因为本地就是follow的一个集群嘛,对吧,你看。对不对,对吧,对吧,都能都能查回来,那这样子的话,数据啊是不受影响的。好吧。大概就这样子一个逻辑。
我来说两句