【黑马 微服务面试篇】

分布式事务

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.mzph.cn/news/902797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实时数仓体系概览与架构演进

✨ 引言:为什么我们离不开“实时” 曾经的你可能会认为“数据分析一天一更,够用了”。但当你所在的公司遇上这些情况: 用户在投放广告后5分钟内就想知道转化效果 风控平台必须秒级判断是否拦截订单 新产品上线后一小时就需调整推荐算法策略…

基于Matlab的车牌识别系统

1.程序简介 本模型基于MATLAB,通过编程创建GUI界面,基于Matlab的数字图像处理,对静止的车牌图像进行分割并识别,通过编写matlab程序对图像进行灰度处理、二值化、腐蚀膨胀和边缘化处理等,并定位车牌的文字,实现字符的…

JAVA---面向对象(下)

重生之我开始补知识第三集 1.标准 JavaBean 要求: 1)类名需要见名知意 2)成员变量使用private修饰 3)至少提供两个构造方法 a.无参构造方法 b.带全部参数的构造方法 4)成员方法 a.提供每一个成员变量对应的 …

信奥赛CSP-J复赛集训(DP专题)(24):P1977 出租车拼车

信奥赛CSP-J复赛集训(DP专题)(24):P1977 出租车拼车 题目背景 话说小 x 有一次去参加比赛,虽然学校离比赛地点不太远,但小 x 还是想坐出租车去。大学城的出租车总是比较另类,有“拼…

Windows申请苹果开发者测试证书Uniapp使用

注意事项 苹果设备,最好是iPhone XS以上,要不然下载不了Apple DeveloperopenSSL 要是V1版本的来生成证书,要不然HBuilder报错按步骤来,生成证书,生成标识符,添加测试设备,生成描述性文件注册苹果开发者账号 (如果有苹果账号直接登录) 苹果开发者官网 开通付费 点击右上…

dockercompose文件仓库

mysql version: 3 # 使用docker-compose的版本,根据需要可以调整# 创建数据目录 # mkdir -p /home/docker/mysql/mysql_data # mkdir -p /home/docker/mysql/mysql_logs # 给予适当的权限(确保MySQL容器可以读写这些目录) # chmod 777 /ho…

【Linux】47.高级IO(1)

文章目录 1. 高级IO1.1 五种IO模型1.2 高级IO重要概念1.2.1 同步通信 vs 异步通信1.2.2 阻塞 vs 非阻塞 1.3非阻塞IO1.3.1 fcntl1.3.2 实现函数SetNoBlock1.3.3 轮询方式读取标准输入1.3.4 I/O多路转接之select1.3.4.1 初识select:1.3.4.2 select函数原型1.3.4.3 理…

【Vulkan 入门系列】创建帧缓冲、命令池、命令缓存,和获取图片(六)

这一节主要介绍创建帧缓冲(Framebuffer),创建命令池,创建命令缓存,和从文件加载 PNG 图像数据,解码为 RGBA 格式,并将像素数据暂存到 Vulkan 的 暂存缓冲区中。 一、创建帧缓冲 createFramebu…

ubuntu的普通用户相关配置

1.切换到普通用户下,不出现,用户名主机ip, 环境变量被破坏, 参考:一文教你快速修改ubuntu终端显示的主机名和用户名_ubuntu终端名称-CSDN博客 2.如果登陆进去无法使用ls,cd,vi等命令 2.1 环境变量 如果 PATH 被清空…

腾讯云×数语科技:Datablau DDM (AI智能版)上架云应用!

在数据爆炸式增长的时代,传统的数据建模方式已难以满足企业对敏捷性、智能化、自动化的需求。数语科技联合腾讯云推出的 Datablau DDM 数据建模平台(AI智能版),基于AI语义建模技术,深度融合腾讯混元大模型能力&#xf…

Spark-streaming(一)

Spark-Streaming概述 Spark Streaming 用于流式数据的处理。 和 Spark 基于 RDD 的概念很相似,Spark Streaming 使用离散化流(discretized stream)作为抽象表示,叫作 DStream。 DStream 是随时间推移而收到的数据的序列。 Spark-Streaming的特点&…

CS144 Lab 6 实战记录:构建 IP 路由器

1 实验背景与目标 在 CS144 的 Lab 6 中,我们需要在之前实现的 NetworkInterface(Lab 5)基础上构建一个完整的 IP 路由器。路由器的主要任务是根据路由表将接收到的 IP 数据报转发到正确的网络接口,并发送给正确的下一跳&#xf…

【网络安全】社会工程学策略

1. 社会工程学简介 社会工程攻击是威胁行为者常用的攻击方式。这是因为,诱骗人们提供访问权限、信息或金钱通常比利用软件或网络漏洞更容易。 您可能还记得,社会工程学是一种利用人为错误来获取私人信息、访问权限或贵重物品的操纵技术。它是一个涵盖性…

【含文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现

项目介绍 本课程演示的是一款基于SpringBoot的开放实验管理平台设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统…

鸿蒙NEXT开发定位工具类 (WGS-84坐标系)(ArkTs)

import geoLocationManager from ohos.geoLocationManager; import { BusinessError, Callback } from ohos.base; import { LogUtil } from ./LogUtil; import { PermissionUtil } from ./PermissionUtil; import { map, mapCommon } from kit.MapKit; /*** 定位工具类 (WGS-8…

SSM从入门到上手-全面讲解SSM框架的使用.

一、SSM框架整合 将Spring、Spring MVC和MyBatis结合在一起,形成一个高效且易于维护的Web应用程序架构。具体整合的方式如下: Spring管理Bean:Spring负责管理所有的Java对象,包括Service层、DAO层等。通过Spring的IoC容器进行依赖…

学员答题pk知识竞赛小程序怎么做

制作学员答题PK知识竞赛小程序,主要有以下步骤: 一、规划设计 明确需求:确定小程序的使用场景是校园知识竞赛、培训机构考核还是企业内部培训等。答题功能,规定答题的具体规则,包括题目类型(单选、多选、…

视频分析设备平台EasyCVR视频技术驱动下,监控上墙全组件解析与组网应用方案

随着数字化进程的加速推进,视频监控技术在工业、商业、社区等诸多领域得到了广泛应用。尽管不同场景对监控功能的具体需求存在差异,但底层硬件架构具有显著的共性特征。实际部署中,仅需依据网络环境等实际情况,灵活调整设备的连接…

idea使用docker插件一键部署项目

一、首先保证我们电脑上已经安装了docker docker -v查看docker版本,如果不能识别,需要先下载docker destop,在官网下载正常安装即可。 安装成功就可以使用docker 命令了 二、idea下载docker插件并配置docker参数 我是通过tcp连接docker服务…

SQL Tuning Advisor

什么是SQL Tuning Advisor STA可以用来优化那些已经被发现的高负载SQL. 默认情况下, Oracle数据库在自动维护窗口中自动认证那些有问题的SQL并且执行优化建议,找寻提升高负载SQL执行计划性能的方法. ** 如何查看自动优化维护窗口产生的报告? ** SQL> set ser…