每日八股:分布式

介绍一下cap理论

CAP原则又称CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。

一致性:在分布式系统中的所有数据备份,在同一时刻是同样的值(等同于所有节点访问同一份最新的数据副本)。

可用性:在集群中一部分节点故障后,集群整体还能响应客户端的读写请求(对数据更新具备高可用性)。

分区容错性:以实际效果而言,分区相当于对通信的时限要求,系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

分布式锁

分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。

RPC的概念是什么?

RPC即远程过程调用,允许程序调用运行在另一台计算机上的程序中的过程或函数,就像调用本地程序中的过程和函数一样,而不用了解底层网络细节。

一个典型的RPC调用过程通常包含以下几个步骤:

1.客户端调用:客户端程序调用本地的一个伪函数(也成为存根,Stub),并传入所需的参数。这个伪函数看起来跟普通的本地函数一样,但实际上它会负责处理远程调用的相关事宜。

2.请求发送:客户端存根将调用信息(包括函数名、参数等)进行序列化,通过网络将请求发送给服务器。

3.服务器接收与处理:服务器端收到请求后,将请求信息进行反序列化,然后找到对应的函数并执行。

4.结果返回:服务器端将函数的执行结果进行序列化,通过网络发送回客户端。

5.客户端接受结果:客户端接收服务器端发来的结果后,将其进行反序列化,并将结果返回给调用者。

常见的限流算法你知道哪些?

1.固定窗口限流算法:就是对一段固定时间窗口内的请求进行计数,如果请求数超过了阈值,则舍弃该请求,如果没有达到阈值,则接受该请求,且计数加1。当时间窗口结束时,重置计数器为0。固定窗口算法限流的优点是实现简单,但可能会出现流量吐刺的问题。

2.滑动窗口限流算法:改进固定窗口缺陷的方法是采用滑动窗口限流算法,滑动窗口就是将限流窗口内部切分为一些更小的时间片,然后在时间轴上进行滑动,每次滑动,滑过一个小时间片,就形成了一个新的限流窗口,即滑动窗口。然后在这个滑动窗口内执行固定窗口算法即可。

滑动窗口可以避免固定窗口出现的超过阈值两倍请求的问题,因为一个短时间内出现的所有请求必然在一个滑动窗口内,所以一定会被滑动窗口限流。

3.漏桶限流算法:模拟水流过一个有漏洞的桶进而限流的思路。从系统的角度来看,我们不知道什么时候会有请求来,也不知道请求会以多大的速率来,这就给系统的安全性埋下了隐患,但是如果加了一层漏斗算法限流后,就能够保证请求以恒定的速率流出。在系统看来,请求永远是以平滑的传输速率过来,从而起到了保护系统的作用。

缺点:

1.即使系统资源很空闲,当多个请求同时到达时,漏桶也是慢慢的一个一个的去处理请求,会浪费计算资源。

2.不能解决流量突发问题。

4.令牌桶限流算法:令牌桶是另一种桶限流算法,它模拟一个特定大小的桶,然后向桶中以特定的速度放入令牌,请求到达后,必须从桶中取出一个令牌后才能继续处理。如果桶中没用令牌了,那么当前请求就会被限流。如果桶中的令牌放满了,令牌桶也会溢出。放令牌的动作是持续不断进行的,如果桶中的令牌数达到上限,则丢弃令牌,因此桶中可能一直持有大量可用令牌,此时请求进来可以直接拿到令牌执行。

#分布式##八股##Java选手#
全部评论

相关推荐

老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本 专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴 快手 去哪儿 小鹏汽车 不知名的一两个小厂其中字节13场 两次3面挂 两次2面挂 一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂 最后一次到录用评估 至今无消息滴滴三面完 没几天挂了 所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通 至今无消息小鹏汽车hr 至今无消息美团2面挂 然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂 这个是我菜,面试官太牛逼了拼多多二面挂 3道题也全写了 也没问题是回答不出来的 泡一周后挂腾讯面了5次 一次2面挂 三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:爸爸
秋招你被哪家公司挂了?
点赞 评论 收藏
分享
评论
3
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务