当前位置: 首页 > ai >正文

【黑马 微服务面试篇】

分布式事务

cap定理-Availability

image-20250424211345100

image-20250424212308607

CAP定理-Partition tolerance

image-20250424213159648

BASE理论

BASE理论是对CAP的一种解决思路,包含三个思想:
BasicallyAvailable(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
SoftState(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
EventuallyConsistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

而分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论:
·CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。
·AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。

AT模式的脏写问题

AT模式原理

image-20250424214352293

image-20250424215550463

AT模式的写隔离

image-20250424221050569

image-20250424221446350

TCC模式

TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。需要实现三个方法:
·Ty:资源的检测和预留;
·Confirm:完成资源操作业务;要求Ty成功Confirm一定要能成功。
·Cancel:预留资源释放,可以理解为try的反向操作。

image-20250425120732328

image-20250425121431252

TCC模式的每个阶段是做什么的?
·Ty:资源检查和预留
·Confirm:业务执行和提交
Cancel:预留资源的释放
TCC的优点是什么?
一阶段完成直接提交事务,释放数据库资源,性能好
,相比AT模型,无需生成快照,无需使用全局锁,性能最强
不依赖数据库事务,而是依赖补偿操作,可以用于非事务型数据库
TCC的缺点是什么?
有代码侵入,需要人为编写try、Confirm和Cance接口,太麻烦
软状态,事务是最终一致
需要考虑Confirm和Cancel的失败情况,做好幂等处理

最大努力通知

image-20250425124709762

注册中心

环境隔离

image-20250425125153579

image-20250425125303861

image-20250425125811140

分级模型

image-20250425130857455

image-20250425131426462

Eureka与Nacos

image-20250425133308810

image-20250425134015302

远程调用

负载均衡原理

image-20250425134745469

image-20250425184927782

image-20250425185104375

切换负载均衡算法

image-20250425192007778

服务保护

image-20250425194759148

Sentinel的线程隔离与Hystix的线程隔离有什么差别?

问题说明:考察对线程隔离方案的掌握情况
难易程度:一般
参考话术:
答:线程隔离可以采用线程池隔离或者信号量隔离。
HySx默认是基于线程池实现的线程隔离,每一个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的
CPU开销,性能一般,但是隔离性更强。
Sentinell则是基于信号量隔离的原理,这种方式不用创建线程池,性能较好,但是隔离性一般。

滑动窗口计数器算法

固定窗口计数器算法

当在第4到第5秒的时候来了3个请求,在第5到第6秒的时候来了3个请求,都可以被放行,

但是有一种情况是这样子的,4-5的这3个请求发生在4500毫秒到5000毫秒之间,5000-6000毫秒的这3个请求发生在5000-5500毫秒之间,相当于1秒钟来了6个请求,超出了阈值!!!

相当于早上吃3个包子,中午吃3个包子,晚上吃3个包子,变成了一下吃9个,吃不下…

image-20250425203013972

滑动窗口计数器算法

image-20250425201222346

漏桶算法

image-20250425204300154

image-20250425204405557

image-20250425204742819

令牌通算法

image-20250425210206661

Sentinel的限流与Gateway的限流有什么差别?

问题说明:考察对限流算法的掌握情况
难易程度:难
参考话术:

限流算法常见的有三种实现:滑动时间窗口、令牌桶算法、漏桶算法。Gateway!则采用了基于Redis3实现的令牌桶算法

而Sentinel内部却比较复杂
默认限流模式是基于滑动时间窗口算法,另外Sentinel中断路器的计数也是基于滑动时间窗口算法
限流后可以快速失败和排队等待,其中排队等待基于漏桶算法
而热点参数限流则是基于令牌桶算法

http://www.xdnf.cn/news/1878.html

相关文章:

  • 多模态深度学习: 从基础到实践
  • 星火燎原:大数据时代的Spark技术革命在数字化浪潮席卷全球的今天,海量数据如同奔涌不息的洪流,传统的数据处理方式已难以满足实时、高效的需求。
  • windows编程字符串处理
  • 【QQMusic项目界面开发复习笔记】第二章
  • 工业相机——镜头篇【机器视觉,图像采集系统,成像原理,光学系统,成像光路,镜头光圈,镜头景深,远心镜头,分辨率,MTF曲线,焦距计算 ,子午弧矢】
  • 【TS入门笔记2---基础语法】
  • python_BeautifulSoup提取html中的信息
  • 1GB与1MB的数值换算关系
  • DeepSeek本地部署保姆级教程
  • tkinter的文件对话框:filedialog
  • Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)
  • 软考中级-软件设计师 知识点速过1(手写笔记)
  • 五一去荣昌吃卤鹅?基于Java和天地图的寻找荣昌卤鹅店实践
  • C++入侵检测与网络攻防之暴力破解
  • 系统架构师2025年论文《论非功能性需求对企业应用架构设计的影响》
  • Python爬虫(5)静态页面抓取实战:requests库请求头配置与反反爬策略详解
  • 深度剖析!GPT-image-1 API 开放对 AI 绘画技术生态的冲击!
  • 【HTTP通信:生活中的邮局之旅】
  • docker的安装和简单使用(ubuntu环境)
  • 【2026第十三季】国考行测模考大赛复盘
  • 如何解决windows端口被占用
  • Python数据分析案例72——基于股吧评论数据的情感分析和主题建模(LDA)
  • 数字化转型的“暗礁“与突围:失败案例深度复盘
  • 联合体和枚举类型
  • WebUI可视化:第4章:Streamlit数据可视化实战
  • uni-app 小程序中的定位问题 以及 页面安全距离
  • 【前端】如何检查内存泄漏
  • 中国250米土壤质地类型数据
  • 上海SMT贴片加工核心工艺与优化方案
  • 文档编辑:reStructuredText全面使用指南 — 第四部分 高级主题