微服务面试篇

一、分布式事务

1、CAP和BASE

1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标:

  • Consistency(一致性)

  • Availability(可用性)

  • Partition tolerance (分区容错性)

它们的第一个字母分别是 CAP。Eric Brewer认为任何分布式系统架构方案都不可能同时满足这3个目标,这个结论就叫做 CAP 定理。

假如现在出现了网络分区,如图:

由于网络故障,当我们把数据写入node01时,可以与node02完成数据同步,但是无法同步给node03。现在有两种选择:

  • 允许用户任意读写,保证可用性。但由于node03无法完成同步,就会出现数据不一致的情况。满足AP

  • 不允许用户写,可以读,直到网络恢复,分区消失。这样就确保了一致性,但牺牲了可用性。满足CP

可见,在分布式系统中,AC之间只能满足一个。

BASE理论是对CAP的一种解决思路,包含三个思想:

  • B asicallyA vailable 基本可用**)**:分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。

  • S oft State**(** 软状态**):**在一定时间内,允许出现中间状态,比如临时的不一致状态。

  • Ev entually Consistent**(** 最终一致性**)**:虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

2、AT模式的脏写问题

3、TCC模式

4、最大努力通知

二、注册中心

三、远程调用

四、服务保护

五、其他

相关推荐
Liquad Li29 分钟前
Salesforce高级开发面试题
java·网络·面试·crm·salesforce
小明bishe1810 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
聪明的一休丶11 小时前
VLLM v0.24.0 版本深度解析:新引擎、新架构与大规模服务全家桶升级
python·架构·vllm
数据库小学妹13 小时前
KES是什么?国产数据库技术架构、核心能力与选型实战解析
数据库·经验分享·架构·国产数据库·数据库选型·信创数据库
北冥you鱼13 小时前
Gin 架构在区块链应用中的最佳实践
架构·区块链·gin
众人皆醒我独醉15 小时前
Pod 一直 Terminating,死活删不掉?三个凶手,每一个你都意想不到
面试·kubernetes
会写代码的建筑师16 小时前
C# 源生成器使用方法
后端·架构
没落英雄18 小时前
3. DeepAgents 实战 - Memory Skills 与上下文工程
前端·人工智能·架构
Yeats_Liao18 小时前
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
java·后端·架构
KaifuZeng18 小时前
通信与接口协议面试十、PCIe
单片机·嵌入式硬件·面试·通信与接口协议