SpringCloudAlibaba面试题精选

SpringCloudAlibaba包含了多种开发分布式微服务系统的必需组件:

SpringCloud中的技术组件是集众家之长,如注册中心Eureka、Zuul等都是依赖于Netflix,受制于第三方厂商。如Zuul宣布停止维护,Spring机构便不得不寻找替代品或自研;Eureka2.x闭源不允许使用。SpringCloud作为国外产品引入到国内后出现了水土不服,如SpringCloudConfig默认将文件存在Github上,且没有维护界面,国内软件公司很难使用。

SpringCloudAlibaba与原有SpringCloud兼容的同时对微服务生态进行扩展,通过添加少量的配置注解,便可实现更符合国情的微服务架构。SpringCloudAlibaba对服务注册、配置中心与负载均衡功能都整合进Nacos,有图形化界面,简化了微服务架构的复杂度,出问题的概率也会降低。原有的服务保护组件也调整为Sentinel,相较Hystrix功能更强大,使用也更加友好。同时还支持了对Dubbo的调用,而且还有Seata用于支持分布式事务。

sentinel在微服务中叫做流量防卫兵,以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel具有以下特征:

令牌桶算法:令牌桶算法是对漏桶算法的一种改进,桶算法能够限制请求调用的速率,而令牌桶算法能够在限制调用的平均速率的同时还允许一定程度的突发调用。在令牌桶算法中,存在一个桶,用来存放固定数量的令牌。算法中存在一种机制,以一定的速率往桶中放令牌。每次请求调用需要先获取令牌,只有拿到令牌,才有机会继续执行,否则选择选择等待可用的令牌、或者直接拒绝。放令牌这个动作是持续不断的进行,如果桶中令牌数达到上限,就丢弃令牌,所以就存在这种情况,桶中一直有大量的可用令牌,这时进来的请求就可以直接拿到令牌执行,比如设置qps为100,那么限流器初始化完成一秒后,桶中就已经有100个令牌了,这时服务还没完全启动好,等启动完成对外提供服务时,该限流器可以抵挡瞬时的100个请求。所以,只有桶中没有令牌时,请求才会进行等待,最后相当于以一定的速率执行。

seata是开源分布式事务框架,提供了AT、TCC、SAGA和XA几种事务模式。分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。

场景举例:一个顾客访问电商平台,电商平台架构按照不同的功能进行了拆分,有订单、会员、库存子系统,下单的过程中分布式事务就产生了。顾客在创建一个订单的时候,要在订单库增加一个订单数据,同时会同步的会员库增加积分和库存库减少库存。这种操作在单个数据库中完成是没有任何问题的,一旦涉及到了分布式的情况,比如下方三个独立数据库的情况,如何来保障数据全局提交、全局回滚,这就是分布式事务要做的事情了。

Seata架构中有三个角色:

假设有一个下单业务,用户发起下单(Create_Order)后需要进行支付扣款、扣库存。Create_Order需要调用其他两个服务进行数据的更新。微服务OrderService就是TM,它发起了全局事务,库存和支付这两个微服务都是事务的参与者,而全局事务的进行需要TC协调两个RM完成。

在一阶段中,Seata会拦截“业务SQL“,首先解析SQL语义,找到要更新的业务数据,在数据被更新前,保存下来"undo",然后执行”业务SQL“更新数据,更新之后再次保存数据”redo“,最后生成行锁,这些操作都在本地数据库事务内完成,这样保证了一阶段的原子性。

二阶段负责整体的回滚和提交,如果之前的一阶段中有本地事务没有通过,那么就执行全局回滚,否在执行全局提交,回滚用到的就是一阶段记录的"undoLog",通过回滚记录生成反向更新SQL并执行,以完成分支的回滚。当然事务完成后会释放所有资源和删除所有日志。

脏写:假设两个事务A和B同时在更新一条数据,事务A先把它更新为A值,事务B紧接着把它更新为B值。当事务B更新完后,事务A突然回滚了,导致事务B修改的值也没了。

脏读:假设事务A更新了一行数据的值为A值,事务B去查询了一下这行数据的值,看到的值是A值。事务A突然回滚了,导致刚才更新的A值没了,当事务B再去再次查询那行数据的值,也不是A了。

无论是脏写还是脏读,都是因为一个事务去更新或者查询了另外一个还没提交的事务更新过的数据。因为另外一个事务还没提交,所以它随时可能会回滚,那么必然导致更新的数据就没了,或者之前查询到的数据就没了,这就是脏写和脏读两种场景。

THE END
1.算法到底是什么?(小白必读)那么,算法是什么呢?阅读完本节内容,相信大家能找到这个问题的答案。算法(Algorism)一词最初出现在 12 世纪,是用于表示十进制算术运算的规则。18 世纪,算法 Algorism 演变为 Algorithm,算法概念有了更广的含义。任何定义明确的计算步骤都可称为算法,或者说算法是合乎逻辑、简捷的一系列步骤。现在算法通常指可以https://baijiahao.baidu.com/s?id=1794500673477721607&wfr=spider&for=pc
2.什么是算法?什么是算法? 最近这两年,由于受到疫情影响,大家越来越难了:企业家、生意人、店主越来越难;外卖员、网约车司机越来越难;网红、主播、自媒体人越来越难。究其根本,大家都被算法困在了“算法”里。 什么事算法?现在几乎人人都离不开各大互联网平台,比如抖音、淘宝、美团、携程等。每个平台的运转都有自己的一套算https://www.jianshu.com/p/d5ff04cdf574
3.什么是算法?算法的概念什么是算法? 算法(Algorithm)是指解决特定问题的一系列明确、有限且可执行的步骤或规则。算法是计算机科学的核心概念之一,用于指导计算机完成各种任务,从简单的数学运算到复杂的数据处理和决策。 一、算法的基本定义 从广义上讲,算法可以定义为: 有穷性:一个算法必须在有限的步骤内完成。也就是说,算法不能无限循环,https://blog.csdn.net/weixin_48579910/article/details/141722210
4.算法是指什么?算法概述算法是指什么?算法概述 描述 一、算法概述 算法是指解题方案的准确而完整的描述,是一系列解决问题、高度符合逻辑性、可执行性的指令集合,代表运用系统方法描述解决问题的策略机制。算法能够对一定规范的输入在有限时间内运行得到输出。 算法中的指令描述的是计算过程,当其运行时能从初始状态和初始输入(初始输入可能为https://m.elecfans.com/article/2008707.html
5.什么是算法?什么是算法? 当人们提到“算法”一词,往往就会把它们当成专属于“人工智能”的范畴,很多专业的计算机人士也是,提起算法就头疼,不知道如何学习算法,慢慢的对算法就会失去兴趣,算法不仅仅是计算机行业特有的,在我们的生活中也处处存在着算法,算法是专注于解决问题的过程和方法。https://zhuanlan.zhihu.com/p/501462272
6.2017年网络信息安全试题附答案(2)D、HASH算法是一个从明文到密文的不可逆的映射 65、不是身份认证的方法___D___ A、口令 B、指纹识别 C、人脸识别 D、名字 66、家里可在ATM机上使用的银行卡为什么说是双重鉴定的形式? B A、它结合了你是什么和你知道什么 B、它结合了你知道什么和你有什么 Chttps://www.yjbys.com/edu/wangluojishu/303651_2.html
7.数学教师开学第一课教案(精选17篇)①数学是什么? ②怎样学数学? 2、全班交流。 【活动三:新学期的展望】 1、展望:在小组里说一说新学期努力的`目标,你准备怎样去实现它? 2、选出几位学生代表说说新学期的展望。 【活动四:新学期的新要求】 提出具体的新学期要求。 (1)实实在在做好预习作业。(尤其是对数学头疼的) https://www.ruiwen.com/jiaoan/5602830.html
8.RSA算法的优缺点分别是什么?具体介绍在这里RSA算法的优缺点分别是什么?具体介绍在这里 RSA算法实际上是一种密钥,它是基于数学理论的计算而产生的一种算法,RSA算法的起源可以说也是非常早的,但它一直沿用至今,在学习相应算法的时候,RSA算法也算是计算机领域学习者的必经之路,不过对于大多数的人来说,RSA算法就目前的应用领域而言其实是略微落后的,但是如果从https://cloud.tencent.com/developer/article/1841423
9.埋头刷了大半年Java面试题:如愿拿到众多大厂offer!分享还愿1. Java的内存模型以及GC算法 2. jvm性能调优都做了什么 3. 介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明。 4. 介绍GC 和GC Root不正常引用 5. 自己从classload 加载方式,加载机制说开去,从程序运行时数据区,讲到内存分配,讲到String常量池,讲到JVM垃圾回收机制,算法,hotspot。 https://maimai.cn/article/detail?fid=1735736133&efid=KbtUeCVp4epTWWihu6i76A
10.洪泰基金副总裁宋楠:AI创业要“少谈算法多接地气”投资者说钛媒体:算法、算力类的项目为什么会减少? 宋楠:像算法、算力上的技术优势反馈到客户那里,可能会有3%-5%准确率的差别,但这种差异很难去做一个定量的横向比较,实际上,AI 公司去拿单的一个核心因素是说商业的服务能力。 具体来说,比如和客户沟通,很多科学家背景的 AI 项目方会觉得,我的技术这么好你凭什么不用我https://www.tmtpost.com/3284389.html
11.《因数末尾有0的乘法》教案(通用14篇)(5)指一名学生将计算过程完整地说一遍。 (6)出示想一想:2500×3怎样写简便?这个问题引导学生讨论,并归纳简便算法。 让学生试做,指名板演:并要求说出计算过程,集体订正。 (7)及时练习: 课本第21页的做一做 做后订正提问:为什么第2、4两题积的末尾的0比第一个因数末尾的0多一个? https://www.jy135.com/jiaoan/1965005.html
12.《8和9加减法》说课稿(精选10篇)师:原来是一群可爱的大白鹅。这里也有数学问题呢?老师看谁的眼睛最亮,发现什么了?把你的发现和你的同桌说一说。 (指名两各学生汇报) 自己试着列出算式。、交流算法。 2、 5只大白鹅高兴的上岸了,它们看到了一群猴子,请你仔细观察,你会解决这个数学问题吗? https://www.yuwenmi.com/fanwen/shuokegao/2402556.html
13.PPT教学设计(精选15篇)2、评一评:图中的小朋友说得对吗?为什么? 3、学习“回音壁”:用赞美的眼光看别人,别人会更美。 用赞美的眼光看世界,世界会更美。 二、寻找班级小明星 (1)讨论:你觉得怎样的同学可以成为班级小明星? (2)说说我们班的.班级小明星。动手填写明星卡,并给同学发明星卡 https://www.oh100.com/peixun/office/477008.html
14.精选小学数学教案范文(通用14篇)2、在教学中引导学生独立探索计算方法,再交流比较不同的算法,得到简便的方法。并能规范书写、正确笔算。 教学重难点: 商中间、末尾有0的除法笔算过程方法,0的书写。 教学过程: 一、情景引入 1、(图片出示)同学们,你们观察一下这幅图,图上都有些什么? https://www.fwsir.com/jiaoan/html/jiaoan_20220221102931_1654433.html
15.5G人工智能到底多重要?大咖们这么说新闻频道360周鸿祎:人工智能是中国巨大的机会,可以换道超车 未来,物联网和物联网产生的大数据、大数据背后人工智能算法的演进,会彻底重塑每个人的生活和工作方式。人工智能与很多场景相结合,可以提高效率,甚至可以取代人的工作。某种程度来说,可能人工智能技术是中国弯道超车,甚至是换道超车的一个巨大机会。https://news.cctv.com/2018/11/09/ARTIEjCZmBKoDvMXUKqXSfEI181109.shtml