00:00
好,接下来呢,我们看一下主keepper的特点,首先呢,来看一下这张图,这张图当中啊,上面这块呢,是主keepper的服务端集群。一共呢有五台服务器对吧,12345。还还有对应的什么ID啊,这个后面我会给大家解释,然后以及呢,存储对应的数据。好,这是主Q服务端启动,启动完之后,下面这些呢,是主Q包的客户端。对吧,诶,客户端跟服务端可以进行相互的一个交互通讯。啊,有了这个基本的印象之后,那下面来看第一个特点。说呀主K呢,是有一个leader多个follow共同组成。哎,也就是说整个一个团队啊,有一个老大,其他的都是跟随者。那为什么要设计一个老大呢?为什么不是五个老大?大家有没有想过这个问题?如果是五个老大的话,那你任何一个客户端跟他写数据,诶他写完的数据变成数据,一他写同一个文件变成数据,二他在写同一个文件变成数据,三,那到底我听谁的。
01:02
是有这个问题吧?阿姨说,如果一个团队都是老大的话,那这个团队一定不是一个好团队。是吧,所以说呢,这个主课本里面啊,他有这么一个老大,他说了算,你写数据的话都得经过我。那同学该说了,那你一个老大,你负责写数据,那其他人那我就不干活得了呗,哎不干活不行,那比如说这个客户端对我的一些独操作。对吧,哎,都超说不影响我这里面的数据的一个存储,那就没问题啊,那肯定如果说没有这个多个的话,那其他人是不是都得跟我这个leader。从这读出去。那就起不到一个集群的效果。哎,效率就比较低下,哎所以说这块呢,哎,整个集群有一个leader多个follow保证集群,哎正常的一个高效率工作。好,那下面再看来第二个特点。说呀,集群当中只有半数的节点存活,主K集群就能够正常服务。
02:01
所以主K包适合安装金属台服务器,那这句话怎么理解呢?你看上面,假如说我们有五台服务器,对吧。挂了两台。能不能正常工作,看这句话说半数以上,那你还剩三台,三台是不是大于五的半数,五的半数是2.5啊,哎,大于它半数,那它仍然能够正常工作。那大家思考一个问题,说后面这句话说主亏本啊,适合安装基素材服务器,为什么这么说呢?那假如说我再来一台服务器,那这个呢是S6。那四块六我仍然也是挂掉这个四和五这台服器集群能不能工作,很显然能工作对吧,还有四台活着呢。我再挂掉一台,你说那个六也挂了。我原来是六台服务器,现在挂掉三台,是不是只剩三台了?那三台超不超过六的半数三。再说是半数以上,它俩是相等啊,爱相等不行。对吧,哎,那你说哎,你这挂三台,即使你是六台服务器,那我整个集群也是瘫痪啊。
03:04
那刚才我是五台集群的话,我挂三台的时候是不是也是集群瘫痪。那如果是你来了一个偶数台服务器,有意义吗?是不是浪费了一台服务器啊?它的可靠性并没有提高。是这个意思。所以说通常情况下,在企业当中,主K集群都是安装基础。节省福气,效率达到最佳。再往下说呀。全局数据一致,每个server保存一份相同的数据副本。客户端呢,无论连接到哪一个服务器,数据都是一致的,你看这么多台客户端访问我集群。他这里面每一份儿数据都是一模一样的。你五台服务器就五个副本。这样才能保证你客户端从任何一个服务器里面读到的数据都是一样的。哎,是这样的一个情况,好,那再往下看说更新请求。
04:04
顺序执行来自同一个客户端的更新请求,按期发送顺序依次执行。哎,比如说这里面啊,来自同一个客户端。的多个请求,那怎么办呢?哎,谁先来的先处理谁。是这个意思。那这也很好理解嘛,那这个呃,就相当于是先进先出嘛,对吧?啊,一个队列里面你先进来的任务,那我说就优优先执行啊,你先进来的嘛,我先执行,你执行完之后再用它执行它。是顺序一个直行。再往下走,说数据更新原始性。一次数据更新要么成功要么失败,比如说这个客户端,对我这个。集群进行写操作。那肯定是要么成功,要么失败。你想啊,要不然我写这么长一堆数据,我前半截成功了,后半截失败了。那这不就是张数据吗?
05:00
那怎么办呢?那如果我把它做成一个大的事物,你说这一段数据要么整体成功,要么整体失败。这是不是一个更合理的一个设计?啊,就是这样啊,比如说它内部的事务操作啊,都是原始性的,OK,再往下。下面呢,是这个事实性。在一定时间范围内,客户端能够读到更新的数据。你想比如说这个客户端往这里面写了一份数据,那其他的这个节点,他什么时候能拿到这份数据呢?是不是有一个同步数据的一个过程。对吧,哎,同步数据的过程。那需要时间呢,那主亏本的同步时间怎么样呢?哎,是非踌。哎,原因很简单,后面我给大家说,因为它这里面的数据量非常小,每个节点啊,存储的数据非常非常小。那它同步的就快了,比如说网络上传输的时间就短一些,OK,那从这个最基本的原理上啊,先了解一下主K到底有哪些特点。
我来说两句