00:00
各位同学大家好,我们继续,那么接下来我们给大家演示一下大肠面试题第四季的一个分布式存储案例的一个真实案例,好,主要是给大家分享和讲解加深。基于多卡容器下面三主三从集群环境的搭建以及扩容和缩容的演示。这个。非常重要的案例,请同学们务必掌握。第一点,你先看看基础篇docker下安装一个red和高高阶篇docker集群下面安装集群,它们两者的难度。那么请做一个对比,你看看你自己想深入到哪个层次。第二个。那么请多啰嗦一句,目前现在面试啊,由于杨哥呢在上硅谷执教呢,也已经五六年了,很多弟子呢,找份工作没什么问题,现在都在慢慢的努力,准备去冲击大产,在大产的又准备从P6升P7,都在持续默默努力着。其实说白了,网络上说的那些什么躺平啊什么什么什么的,可能现实环境中努力起来真的是一个比一个狠。
01:02
听懂了吧,至少杨哥的这波,认识的这波弟子没有一个选择躺平,都觉得什么书到用时方恨少,钱到月底不够花,那么这个时候的话呢,你对于三五年工作经验的人,你去冲击大厂,一看你的简历也知道你有三五工作经验,说难听点,默认潜规则没有个月薪25K或者30K。甚至更高是请不起你的,那么自然而然,他要求问的就不再是那些简单的八股文,他比如五年工作经验,你来应聘一个。阿里P6或者P6加,他不会再考你什么哈,Map底层是些啥啊,这些说白了考初级选手的题目了,但是他考的会更难,那么可能考你的是什么,你过往项目的。技术亮点。和你。工程经验,尤其是是一些什么复杂的场景案例设计题目,哎,说白了就是什么来了又能干活,我们不是找一堆小镇做题家,你又不是什么刚毕业一年工作经验以内,看看你基础知识扎不扎实,学习能力强不强,哎,所以说在这块的话,那么请同学们来看一下。
02:05
来。集群集群模式。Docker版本,那么按照哈希槽分区这样的一种算法来进行一级数据的存储。哎,如果说你应聘K8S do这样的高端岗位。一定会问你,你在容器环境下面,你是怎么做的?好。那么同学们来看这么一个面试题。一到两页甚至更多,一条数据需要缓存,请问如何设计这个存储案例?我暂停一下录屏,同学们可以思考一下,你看比如说自己抖音的这样的。观看流水哎,转账记录哎,包括你的浏览记录,大数据后台在做着分析呢,那可能每个人上成千上万的用户,汇总起来以后,这些有些数据是需要缓存,那么这样的话你怎么办?你总不可能说我给你带买四条差,反正差个2亿条啊,分库分表等等的。别想啊,一句话张嘴,他就知道你有没有了。这种问题不用多废话。
03:04
单机单台反,那不可能,肯定是分布式存储,那么请问你用如何落地,那么兄弟们一样,单机的一台扛不扛得住啊,当然扛不住了,扛不住怎么办?那是不是分而治之啊,只能是多台来扛啊,所以说上述这样的问题啊,就是阿里呀,腾讯这样的大客户。那么对于工程案例和场景设计类的必考题目,那么对于这种分布式存储,那么一般业界有三种解决方案,那么兄弟们杨哥三板斧理论实操小总结那么所以说弟兄们先听理论,这是你面试的谈资啊。OK,我们强调过,你干什么事情,你跟面试官聊,需要有谈资,大家都很忙,你别过去啊,我就试着玩,我面试着玩,大厂都有黑名单管理系统,你要么现在不要去大厂面试啊。要么就认认真真做准备,别跳了,一般的工作没什么太大意思,就照着大厂打,那么所以说你要做至少是什么三到六个月的精心准备,不要觉得说我过去面试玩成了,我就去不成了,就算如果事先这样。
04:10
你这次面试准备的不充分,基础知识不扎实,像阿里啊,美团啊,自己啊,他有内部的招聘系统记录下了你这次的。表现,那么你下次你想再来面成功就有点难了啊,同学们,所以说干嘛一般别出手,出手别一般就这个意思,好,那么还是请大家做一下扎实细致的认真准备和积累,那么现在请同学们理论,听完了以后我们再做实操,那么然后咱们呢,再来做总结,那么这个是可以跟面试官聊聊的,你又三五年工作经验了,你做过什么,配过什么,有没有一些亮点,啥都拿不出来,还是只会说增删改查,还要自己黑自己啊。陈雪儿主要是。CV工程师什么呢?那是你,不代表别人。所以说希望各位同学们还是什么人往高处走,水往低处流,加油来,大家请看对于这样的分布式存储,我们的理论依据有哪一些?那么你把这三个给面试官说一下,至少认为你的理论知识扎实,那么可以可以这么理解,小产、中产、大产,OK,难度和复杂度一个比一个高来。
05:21
第一种我们前面强调过了,数据很多需要缓存,单机不可能,那么肯定是分布式存储嘛,那么分布式存储的话,你这个数据怎么落。假设分布式啊,那么肯定是什么多台,那么多台的话,假设有123456,不管是三台还是六台,那么假设来一个数据了,你是放到一号机还是放到三号机,还是放到二号机,这是放第二个读的时候,你之前是放到二号机,你能不能保证下次读的时候也从二号机读出来,哎,这个就是根本,所以说我们第一种情况。方法。哈希取余数来进行分析,那么来,同学们。我们来看看啊。
06:00
现在呢?我们在来做缓存,这是必然的了,那么现在就变成什么?一级的这样的存储。那么假设我们有个KK1。V1,那么丢到这RA里面,这三台机器上面放哪台呢?你要拿什么算法呢?那么来吧,两一条数据假设啊,2亿个KV。我们单机不行,是必须要有分布式锁分布式,那么既假设我们三台机器构成的一个集群,那么用户每次读写操作都是要根据一个公式啊,比如说哈希,这个ready,这个K过来了,根据某种哈希算法去取机器的台数,求个余数,那么计算出这个哈希值,用来决定它映射到哪一台,比如说零就这台一就是这台二,就是这台012 012你怎么存的,我怎么取的,同样因为里面这个K一般是不重复的,你用同样一套哈希算法,那么你取到的这个余数存进去是放在零号机,下次我来取的时候取出来也是从零号机,那么这样。干嘛?
07:00
绝对正确,听懂了吧?这个哈希曲是一般最通用最常用的,OK,那么接下来问题是它的优点是什么呢?简单粗暴,直接有效,只需要预估好、规划好节点,你是三台构成集群还是六台构成集群,随便都能保证撑一段时间。使用哈希算法,让固定的一部分请求。写和读都落在同一台服务器上面,这样每台服务器固定的处理一部分请求,并维护这些请求。比如说假设一条数据343的比例。前3000万,中间4000万,后3000万咱们就在这儿了,那么这样的话呢,是不是就起到了负载均衡和分而治之的作用啊?那么兄弟们思考一下。它有什么缺点?好,给大家十秒钟一下,简单的就是最好的,没错。那么但是别忘了它还有没有什么缺点呢?我们现在能称下来除以几是不是集群的总台数啊?
08:01
那么下面我们的问题是,假设这个集群。某一台机器它挂了,它去除以三没了,实际已经变成二了,那这个时候兄弟们是不是有点天下大乱啊?哎,那么来吧,可以看一眼,还是刚才这个取法,我们的问题是原来规划好的节点进行了扩容和缩容就比较麻烦喽,不管扩缩,每次数据变动都会有变动,那么映射关系就需要重新进行计算。那么这个时候在服务器个数不变的情况下,我们需要扩容或者是故障停机的情况下,那么原来取模的公式就发生变化了。以前固定写死就三台机器,那么现在假设你变成四台或者是六台,那么这个余数是不是就不一样了,这个分母就变了,那么好,这是扩,那么缩呢?那么假设它变成了两台了呢?那么此时地址经过取的计算结果将会发生很大变化,那么以前放在这呢,可能就放到别的地了,那么根据公式获取的服务器就会变得不可控。
09:03
由于某个red机器宕机了,底层这个台数的变化将会导致哈希取的数据全部重新洗牌,那么这个就是我们什么?不利于在大厂用的。因为大厂你免不了要对。集群机器扩缩容,你这个哈希起鱼这个分母数是一定会变动的,OK,那么所以说同学们这个是其中一个方法,但是呢,我们小厂用用可以大中场不OK,那么第一种算法就是我们的是吗?分布式存储的理论依据。哈希取鱼。
我来说两句