分布式相关面试题总结

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

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

1、本地消息表,

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

在这里插入图片描述

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

在这里插入图片描述

四、什么是RPC?

RPC,表示远程过程调用,对于Java这种面向对象语言,

五、什么是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实现

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

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值