每日八股:分布式

介绍一下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选手#
全部评论

相关推荐

还有没有26届在找暑期实习的,目前组里还有两个hc,腾讯云智后端岗,base西安,有想法的可以发我简历🤔职位详情:负责腾讯云网络弹性公网IP(EIP)相关产品后台开发工作,在庞大用户量和资源基数的背景下,完成EIP核心业务的快速交付,并持续关注产品竞争力,用户体验、业务性能,以及可靠的API,监控、运营能力建设,在这个团队,你将有机会接触到前沿的应用服务技术和架构,体验和学习系统化和工程化的研发流程和思维模式,从规范、测试、设计等多方面提升能力。技能要求:1. 熟悉Linux操作系统下Python、C/C++、或Go语言开发,熟悉TCP/IP、HTTP/HTTPS等协议原理,熟悉常见数据库基本原理及调优手段;2. 了解高并发和高可用的分布式系统的架构设计和实现原理,并具备优秀的系统和代码级别的重构能力,云计算从业经验优先;3. 熟悉进程间通讯编程,多线程编程,Linux下常见的网络编程模型,能运用常见工具定位调试问题代码;4. 具备优秀的学习能力与逻辑思维能力,高度的责任感,和团队协作和沟通能力;5. 本科及以上学历,计算机相关专业其他关注点:- 在出现困难的时候,如何主动推进问题有效解决是我们非常看重的个人能力- 优秀的团队协作能力以及自我高标准的要求将会是非常重要的加分项- 我们不会过分关注学历和毕业院校,能力才是主要考量因素注:该职位为腾讯云计算(西安)有限责任公司感兴趣的直接用我的内推码投一下简历(之前投过了的话就不用了),然后私聊跟我发一下简历图片就行~
帮你内推|腾讯云智研发 实习
点赞 评论 收藏
分享
评论
3
9
分享

创作者周榜

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