分享
首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:
(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构…实在是太多了)
其次分享一些技术知识,以截图形式分享一部分:
Tomcat架构解析:
算法训练+高分宝典:
Spring Cloud+Docker微服务实战:
最后分享一波面试资料:
切莫死记硬背,小心面试官直接让你出门右拐
1000道互联网Java面试题:
Java高级架构面试知识整理:
2、TCC(Try-Confirm-Cancel)
方案
TCC 其实就是采用的补偿机制,其核心思想是:针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。它分为三个阶段:
(1)try
一般都是锁定某个资源,设置一个预备类的状态,冻结部分数据,。简单的说就是通知各个业务被调方预留相关的业务资源。
(2)confirm
确认执行各个业务方的资源操作
(2)cancel
取消执行每个业务方的资源操作
1、什么是Seata
Seata(Simpe Extensible Autonomous Transcaction Architecture)那么什么样的分布式事务解决方案才是好呢,我想应该是对于现有业务无侵入同时满足高性能的解决方案。
Seata`便是一种高性能、方便使用且对业务零侵入的针对微服务的一种分布式事务解决方案。
如下图所示,可以看下Seata
是如何解决分布式事务的,如下所示,Seata 的设计思路是将一个分布式事务可以理解成一个全局事务,下面挂了若干个分支事务,而一个分支事务是一个满足 ACID 的本地事务,因此我们可以操作分布式事务像操作本地事务一样。
在Seata
中包含了三种基本的组件来处理全局事务与分支事务的状态维护与管理,分别如下:
(1)Transaction Coordinator(TC):事务协调器。维护全局和分支事务的状态,驱动全局事务进行提交或回滚。
(2)Transaction Manager™:事务管理器。定义全局事务的范围,开启一个全局事务、提交或者回滚一个事务。
(3)Resource Manager(RM):资源管理器。管理处于运作的分支事务的资源,与事务协调器协作,包括注册分支事务以及报告分支事务的状态,驱动分支事务的提交与回滚。
如下图所示:
我们一起看下Seata
中的全局事务的大致执行步骤是怎样的,如下:
(1)TM
向 TC
申请开启一个全局分布式事务,TC
创建全局事务后返回全局唯一的 XID
,XID
会在涉及微服务的整个全局事务的上下文中进行传播;
(2)RM
向 TC
注册本地分支事务,该分支事务归属于拥有相同 XID
的全局事务;
(3)TM
向 TC
发起全局事务的提交或回滚,对应于响应的XID
;
(4)TC
调度并且驱动 XID
下的分支事务完成提交或者回滚。
2、项目引入
在项目中进行maven引入
<seata.version>0.8.0</seata.version>
io.seata
seata-all
${seata.version}
总结
谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。
为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的
并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)
66个Java面试知识点
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)
算法刷题(PDF)
(https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**