00:00
前面我们使用库巴fair官方提供的视力工程,我们测试了一下我们全自动化的cicd流程,那接下来我们要做的事情就是我们可以利用库s fair,在我们整个K8S集群上,我们来部署我们后来的每一个业务。当部署所有业务之前,我们还得部署好业务运行的一些环境,比如my circle red search,包括一些中间件NUS等等等等,那我们接下来就来做这个事情。那来做这些事情之前,我们先来给大家讲一下我们这一块集群的部署,我们后来的部署可以使用集群的方式,My circle red以及以search等等,我们都可以部署为集群,那这个集群该怎么部署?那先来说一下我们要集群部署的目标,我们为什么要使用集群?首先呢一点,那就是一个机器永远都会出现单点故障,只要这个出现问题了,比如MYSQL,我部署在一台机器,它宕机了以后呢,我们整个服务就不可用了,所以我们一定要用集群的方式,我们可以部署多台马Q,这样呢,保证我们这个单点出现问题的时候,我们服务呢是可用的。所以整个集群的目标说起来呢,我们分为了这么几点,首先第一点是我们说的高可用,嗨,Available高可用,就是说当我们一台机器停止服务,就是我们说的单点出问题以后,我们要对整个业务呢是毫无影响的,因为我们这个机器可能会由于各种原因。
01:29
网卡、路由、CPU、内存等等都会出现故障,所以呢,我们要避免这个我们集群的目标,第一个就是高可用,第二个我们还可以突破数据量的限制,比如我们如果是red单个节点来存储数据,假设呢就存储个4G、5G、8G,但是呢,我可以让red上到十台机器上,这样呢我们就可以存到40G,那理论上我们这个分布式系统只要足够大,我们这个存储量是无限制的,然后呢,再来加上我们的数据的容灾备份,我们集群还是这个目标。再举一个例子,比如我们这个my circle。
02:06
我们呢放了多台机器,但是呢,有一台机器它存的呢,是我们这个,比如一到十号的数据,它呢出现了问题了,那出现问题这个机器呢,还不可恢复,恢复了怎么办?我们呢就可以,如果是别的机器对这台机器的数据已经有了备份,也有一到十台十号这个数据,所以即使它不可恢复没问题,那么这个数据呢都是有的,所以我们为了容灾,再接下来我们的压力分担,本来呢只有一台马色口增删改查全部来到这儿,我们来进行调用的话,我们这一台机器很容易顶不住,所以我们可以让同样的MYSQ复制到多台,比如我们一到1000号的这流量,我们来到这儿来进行查询,然后呢,他们来到这儿查询,其他的人来到这查询,但是同时保证这些马SQ的数据只要是一样的,那就没问题,所以们也可以来做到压力分担。所以这是我们为。
03:06
为了建集群的所有目标,那么为了这个目标我们就可以来建一些集群,但这个集群呢,我们来说后来建立的无论是谁的集群,基本的形式有这么几个,当然呢,只要掌握了这么几个基本的形式,那么后来所有的集群大致上都是对于他们的一个变形,好比如我们说的第一个主从形式,常见的集群的第一种状态就是主从,一个主节点,然后呢,很多的从节点,那这个主存呢,又分为不同的形式,第一种呢是复制主存,复制的同步方式,那从节点呢,就是来复制主节点里边的数据,保证呢跟主节点里边的数据是一模一样的,这种在我们后来的集群里边用的也非常多,这样能做到的好处就是压力分担,比如我们经常以MYSQ为例,我们想要大病发量进行查询,但如果都去这一台机器,既要读又要写我们这个大病。
04:06
量进来我们很容易顶不住,那这样我们从机呢,跟主机的数据是一样的,你查询去这儿去这儿,去这儿去这儿都行,所以呢,我们只要这么四台机器全部分担起来,即使是百万的并发来到四台机器里边,每一个呢,我们可以给他均分到二十来万,然后如果我们更多的机器,我们每一个均分到几千,那就我们可以承担很大量的并发,所以这是我们说的第一种储存复制的方式,第二种还有一种叫储存调度的方式,这个主从调度呢,现在就是这样,我们从可以让主来进行一个控制,哎,主呢相当于是他的领导,那接下来所有的比如一些增删改查的数据要给哪调度,是由主节点给你调度过来,包括你想要查询,那主节点帮你调度到一个从节点里边给你进行查询,或者你想要做一些其他工作,比如我们的Co native整个集群,它用的。
05:06
不是一个主存调度的方式,我们所有的这个任务节点信息,包括我们要部署一个东西,主节点呢,先挑一台存服务器要干这个活,然后呢再去调度给存服务器从器真正干活,所以呢,我们还有一种叫主从调度的方式,这我们说的第一种主从式,我们常见的两种主从复制主从调度,第二种我们说到封片式,但主从呢,我们现在。如果使用主存复制很少呢,会解决这么一个问题,就是我们的容量限制问题,比如我们是使用主存复制MYSQ,主服务器里边有什么数据,那存复器跟它一模一样,存复器跟它一模一样,那马SQ主存不下了,我们这个从也就没办法,所以呢,我们现在想要突破数据量的限制,我们还可以使用另外一种方式叫封片式,那们现在呢,就部署上不同的MYSQL,比如red之类的,好们部署上几台不同的red,然后呢数据,比如我们说的一到1万号数据在这,然后呢,1万到2万号数据在这儿,2万到3万号数据在这儿,所以呢,我们相当于数据呢,给它分了一个片区,给它来存储了,不同的数据属于不同的片区来进行存储,那如果我们要查99号,它属于一到1万号,那就应该去第一个里边查,这是我们说的主从啊,不是主从是们说的封片方式,封片方式呢能突破我们数据。
06:33
月量的限制。而且呢,我们还可以做到我们这个分片方式呢,有这么几种形式,比如我们这个数据的分片存储,我们就是来分片的,一到1万,这个1万到2万,2万到3万,3万到4万,然后呢,分片还可以做片区之间的互相备份,比如我这一到1万号数据,然后呢,我这个里边不仅存了一到1万号,我还备份了别的5万到7万号的数据,我备份在这儿了,然后呢,这台机器也备份了一个一到1万号,它还存了一个三到4万号的数据,那这样呢,如果一到1万号这个节点出现了问题,那丢失的是一到1万号数据,但是呢,与此同时,别的机器其实对这个数据有一个备份,我们也不害怕丢失,所我们这个分片呢,也可以做到备份极致,这是我们说的前两种,主从式,封片式,另外一种呢?
07:29
可以是前两种的搭配,也可以是一个独立变形,我们说的这个叫选主式,因就说这个主从,我们很容易出现一些问题,就是我们的这个故障,那如果是分片,他们之间假设没有任何关系的话,纯客户端分片,比如说我到底该存哪些数据,我从red给它里边set东西的时候,我调这个Java代码的时候,我就算好我要set的这个东西属于哪个片区,我直接连线这个片区的red,我来保存,这叫我们客户端分片,那如果是服务端分片,他们之间肯定是要产生互相关联的关系,比如我要保存一个数据,我一看不是我片区的,我就可以让它保存,但是整个之间的这些调度呢,有可能是一个主从调度,比如我们这即使是几个片区,有一个主节点可以来负责我们来调度这些数据,你要存它,诶,它给你算出来调度到这儿,他给你算出来调度到这儿,但只。
08:29
它牵扯到我们有这个主节点,那么整个系统里边呢,只要有领导人,那么就会出现我们的选举,因为这个领导呢,有可能出现任何问题,比如网络故障,机器宕机等等各种问题,那一旦领导人出现了问题,我们就要进行选主,怎么选主呢?我们就可以从一些候选领导里边,那再来进行一些选取,或者从其他节点里边选出一个领导人,再来统领我们其他的这个服务,跟我们看到之前RFTT这个算法一样,这个我们来整个做的一个选煮,这个选煮呢,我们可以为了各种不同的方式来进行选煮,比如我们为了容灾的方式来进行选主的,哎,我们一个主机这个荡掉了,然后我们再来选一台主机,然后呢,它来给我们来执行整个流程,我们可以为了容灾,包括这个数据啊,我们可以都互相备份,然后呢,第二个是为了调度选主,那现在呢,单纯的主节点也不为了存啥数。
09:29
出具它呢只是一个调度工作,但这个主节点要没了,我们整个把集群里边其他节点就没法调度了,比如我们的cober net集群,如果我们的这个主节点没了,那么这个从节点就在这儿就尴尬了。所以我们整个cober nes集群要做成我们要保证的第一种方式高可用的话,那我们的主节点就得有几个放在这儿,要给我们来进行一个高可用,一个主节点当调,立马能切换到另一个主节点,重新对整个集群来进行调度,所以呢,这是我们说的我们的选主,选主呢会经常在我们这个集群里边建到,所以这是我们后来搭建任何集群的最基本的这几种形式,那这几种形式有了以后,我们接下来搭建其他集群就不难了,那么下一课就基于我们这些的基本形式,我们看一下各种不同的这些持久层,比如马S以及一些中间价等等各种。
10:29
不同的这些技术,他们都该怎么样?集群是用的哪种形式?
我来说两句