2024年最新分布式事务及其一致性协议,netty架构图谱

最后

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

美团面试经验

美团面试
字节面试经验
字节面试
菜鸟面试经验
菜鸟面试
蚂蚁金服面试经验
蚂蚁金服
唯品会面试经验
唯品会

因篇幅有限,图文无法详细发出

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

关于读已提交和可重复读的区别:

(1)读已提交(又叫不可重复读)隔离级别下,如果事务A的一个操作读取了一条记录,然后事务B修改了这条记录,接着事务A的另一个操作再读取这条记录的时候就发现被修改了。所以对于读已提交来说,需要注意的是另一个事务的更新或是删除操作。

(2)可重复读隔离级别下,如果事务A的一个操作读取了一张表的记录,事务B不能对这张表的数据进行删除或是更新,这样就保障了可重复读,但是事务B是可以对这张表进行插入操作的,事务B向这张表插入一条记录后,事务A的另一个操作再读取这张表的数据,就发现多了一条记录,这就是幻读的产生。所以对于可重复读来说,需要注意的是另一个事务的新增操作。

三:什么是分布式系统。

首先了解下从集中式到分布式的发展历程

20世纪60年代,人类发明了大型主机。大型主机具有超强的计算能力和I/O处理能力,在稳定性和安全性上也有良好的表现,因此集中式的计算机架构也就流行了起来。集中式系统是将一台或是几台计算机作为中心节点,所有的操作运算和数据的存储都是中心节点完成。一方面是大型主机价格昂贵,技术要求比较高,对主机进行扩容困难,一台主机不可用将造成整个系统不可用,另一方面是小型机和PC的发展,集中式架构逐步退出历史舞台,分布式架构走进人们的视野。

分布式系统指的是将一个硬件或是软件组件分布在不同的网络计算机上,彼此之间通过消息传递进行通信和协调的系统。

四:分布式系统的经典理论。

1.CAP理论

CAP指的是Consistency(一致性)、Availability(可用性)和Partition tolerance(分区容错性)。

(1)一致性:指数据在多个副本之间能够保持一致的特性。

有以下三种一致性级别:

a.强一致性:要求对系统数据的修改可以立刻读取,用户体验性最好。

b.弱一致性:不保证什么时候能达到一致性,但是尽可能保证在某个时间级别后,数据达到一致性。

c.最终一致性:弱一致性的一个特例,系统会保证在一定时间内,能够达到一个数据一致的状态。

(2)可用性:指系统提供的服务需要一直处于可用状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。

(3)分区容错性:分布式系统在遇到任何网络分区故障时,都需要能够保证一致性和可用性,除非整个网络都发生了故障。

2.BASE理论

BASE理论指的是Basically Avaliable(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)。

解释一下软状态,指的是允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性。也就是允许不同数据副本的数据同步允许延迟。

五:什么是分布式事务

现在小明想要从银行A转500块钱到银行B,因为两家不同的银行,各自有自己的系统,自己的数据库,银行A先在小明的账户上扣除500块钱,然后银行B准备在小明的账户上加上500块钱,然而网络故障了,银行B的操作没有成功,这时候该怎么办呢?银行B怎么告诉银行A自己操作没成功,让银行A进行操作回滚呢?

分布式事务是指事务的参与者、支持事务的服务器,资源管理器以及事务管理器分别位于分布式系统的不同节点上。一个分布式事务会涉及多个数据源或是业务系统的操作。

六:分布式事务的一致性协议

如果一个操作涉及多个分布式节点,为了保证事务的ACID特性,需要引入一个“协调者”组件来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点被称为“参与者”。协调者负责调度参与者的行为,并最终决定这些参与者是否真正地提交事务。

1.二阶段提交协议(2PC:Two-Phase Commit)

最后我们该如何学习?

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Mybatis 3源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Redis学习笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Spring Boot核心技术-笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值