栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分布式相关面试题总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分布式相关面试题总结

一、什么是分布式事务?有哪些解决方案?

在分布式系统中,一次业务处理可能需要多个应用来实现,比如用户发送一次下单请求,就涉及到订单系统创建订单,库存系统减库存,而对于一次下单,订单创建与减库存应该是要同时成功或者同时失效,但在分布式系统中,如果不做处理,就很有可能订单创建成功,但是减库存失败,那么解决这类问题,就需要用到分布式事务,常用的解决方案如下:

二、分布式锁的使用场景?有那些实现方案?

三、分布式锁的使用场景?有那些实现方案?

四、什么是RPC?

五、什么是CAP理论?

一致性(C:Consistency):一致性是指数据在多个副本之间能否保持一致的特性。例如一个数据在某个分区节点更新之后,在其他分区节点读出来的数据也是更新之后的数据;

可用性(A:Availability):可用性是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。这里的重点是"有限时间内"和"返回结果";

分区容错性(P:Partition tolerance):分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务。

分布式环境下(数据分布)要任何时刻保证数据一致性是不可能的,只能采取妥协的方案来保证数据最终一致性。这个也就是著名的CAP定理。

选择说明
CA放弃分区容错性,加强一致性和可用性,其实就是传统单机数据库的选择
AP放弃一致性(这里指强一致性),追求可用性和分区容错性,例如hdfs,分布式数据库
CP放弃可用性,追求一致性和分区容错性,基本不会选择,因为网络会导致系统不可用

需要明确的一点是,对于一个分布式系统而言,分区容错性是一个最基本的要求。因为 既然是一个分布式系统,那么分布式系统中的组件必然需要被部署到不同的节点,否则也就无所谓分布式系统了,因此必然出现子网络。而对于分布式系统而言,网 络问题又是一个必定会出现的异常情况,因此分区容错性也就成为了一个分布式系统必然需要面对和解决的问题。因此系统架构师往往需要把精力花在如何根据业务 特点在C(一致性)和A(可用性)之间寻求平衡。

六、什么是BASE理论?

它是对 CAP 中 AP 的一个扩展。对于我们的业务系统,我们考虑牺牲一致性来换取系统的可用性和分区容错性。BASE 是 Basically Available、Soft state 和 Eventually consistent 三个短语的缩写。

Basically Available(基本可用):通过支持局部故障而不是系统全局故障来实现的。如将用户分区在 5 个数据库服务器上,一个用户数据库的故障只影响这台特定主机那 20% 的用户,其他用户不受影响;

Soft State(软状态):状态可以有一段时间不同步;

Eventually Consistent(最终一致):最终数据是一致的就可以了,而不是时时保持强一致。

七、什么是ZAB协议?

八、为什么ZooKeeper 可以作为注册中心?

九、什么是服务雪崩?什么是服务限流?

十、什么是服务熔断?什么是服务降级?区别是什么?

十一、SpringCloud 和 Dubbo 有那些区别?

十二、如何实现接口的幂等性?


唯一索引 – 防止新增脏数据

token机制 – 防止页面重复提交

悲观锁 – 获取数据的时候加锁(锁表或锁行)

乐观锁 – 基于版本号version实现, 在更新数据那一刻校验数据

分布式锁 – redis(jedis、redisson)或zookeeper实现

状态机 – 状态变更, 更新数据时判断状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027576.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号