分布式核心面试技术(持续更新)

幂等性解决方案

https://blog.csdn.net/xiaowanzi_zj/article/details/120147682

MySQL可以动态扩容缩容的分库分表方案

https://blog.csdn.net/xiaowanzi_zj/article/details/118715503

分布式一致性问题

分布式系统解决的一个重要问题是数据的复制,复制是存在延时的,所谓的分布式一致性问题,是指在分布式环境中的数据一致性问题,一致性有3种级别:强一致性、弱一致性、最终一致性。

分布式和集群的关系

分布式关注项目拆分,集群关注项目部署

分布式三态

如果某个节点向另一个节点发起RPC(Remote procedure call)调用,即某个节点A向另一个节点B发送一个消息,节点B 根据收到的消息内容完成某些操作,并将操作的结果通过另一个消息返回给节点A,那么这个RPC执行的结果有三种态:“成 功”、“失败”、“超时(未知)”,称之为分布式系统的三态。

互联网三高

高性能、高扩展、高可用

高性能

响应(低延时)

吞吐 ( 高吞吐量、高并发 )
如果有人要求你提升系统的性能 : 1 :降低延时 2 :提高吞吐
1. 降低延时
优化存钱系统 :
1: 存钱 10 -> 存钱 5 , 延时降低 , 吞吐量自然就提高
amdah 定律
要想显著加速整个系统 , 系统提升全系统中相当大的部分的速度 A-B-C-D-E
2. 提高吞吐量
amdah 定律告诉我们 , 提升系统的响应比较困难 , 所以现在很多系统的性能提升体现在提高吞吐量上 -> 各种各样的系统架构
举例
集群 - 吞吐、负载均衡 - 吞吐、缓存 - 响应、 JVM 优化 - 响应、分库分表 - 吞吐 / 响应、 tomcat 非堵塞协议 - 响应、 MQ- 响应、云
原生 -k8s- 动态扩缩容

个人对分布式集群微服务的理解

https://blog.csdn.net/xiaowanzi_zj/article/details/117604747

CAP理论

Consistency(一致性)

所有节点访问同一份最新的数据副本

Availability(可用性)

每次请求都能获取到非错的响应 , 但不保证获取的数据为最新数据

Partition tolerance(分区容错性)

不能在时限内达成数据一致性 , 就意味着发生了分区的情况 , 必须就当前操作在 C A 之间做出选择)
白话理解 :
#一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。
#当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。
提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。
然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。
#总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。

 (系统中任意信息的丢失或失败不会影响系统的继续运作)

CAP定律组合

在分布式、微服务系统中 ,CAP 定律三者无法同时兼顾 , 其中可以容忍网络之间出现的通讯故障 , 只能 CP AP 二选一。
CP: 当网络出现故障之后 , 只能保证数据一致性 , 但是不能保证可用性 (Zookeeper), 意味着服务不能用;
AP: 当网络出现故障之后 , 不能保证数据一致性 , 但是能保证可用性 ( 比如 Eureka), 意味着可允许短暂的数据不一致性 , 但最
终需达到一致 , 其他节点可正常提供服务 ;

BASE理论

BASE是Basically Available(基本可用)Soft state(软状态)Eventually consistent(最终一致性)三个短 语的缩写。BASE理论是对CAPAP的一个扩展,通过牺牲强一致性来获得可用性,当出现故障允许部分不可用但要保证核心功能可用,允许数据在一段时间内是不一致的,但最终达到一致状态。满足BASE理论的事务,我们称之为柔性事务

基本可用

分布式系统在出现故障时 , 允许损失部分可用功能 , 保证核心功能可用。如电商网址交易付款出现问题来 , 商品依然可以正常浏览

软状态

由于不要求强一致性 , 所以 BASE 允许系统中存在中间状态 ( 也叫软状态 ) 这个状态不影响系统可用性 , 如订单中的 支付 中” 数据同步中 等状态 , 待数据最终一致后状态改为 成功 状态

最终一致性

最终一致是指的经过一段时间后 , 所有节点数据都将会达到一致。如订单的 支付中 状态,最终会变为 支付成功 或者 支付 失败”, 使订单状态与实际交易结果达成一致 m 但需要一定时间的延迟、等待

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡^泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值