搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
菜鸟追梦旅行
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
llama2使用gptq量化踩坑记录_未安装exllamav2内核
2
On branch master nothing to commit, working tree clean_gitee :on branch master nothing to commit, working
3
ESP8266实现基本的web访问,并控制LED的状态_esp8266访问网页
4
Element-ui tab栏的切换_elementui的tab切换
5
从 0 开始搭建 IoT 平台
6
SpringBoot入门到精通(十一):整合Swagger3.0-定制RESTful与统一接口返回值_swagger3接口定义返回值
7
RHEL8.2离线安装docker19.03.15_redhat 8.0docker离线安装
8
【FFmpeg】音视频录制 ③ ( 使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备 | 录制桌面 | 录制音频 | 同时录制 音频和视频数据 )_screen capturer recorder ffmpeg 版本
9
使用gradle创建spring项目时报错Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.3.
10
Android原生编解码接口 MediaCodec 之——踩坑_presentationtimeus
当前位置:
article
> 正文
分布式八股文
作者:菜鸟追梦旅行 | 2024-05-05 08:18:34
赞
踩
分布式八股文
什么是
分布式系统
?
集中式系统
,可以理解为将一整个系统的所有功能,包括数据库各种都部署在一起,统一向外提供服务。
分布式就是将集中式系统拆分成多个系统,每一个系统单独对外提供服务,整一个提供一整套服务。
意味着能够采用更多的服务器,CPU、内存、存储资源增加,能够应对更大的并发量。
这里举例商城系统。各个模块部署在不同机器上,通过RPC(远程调用)等方式进行通信。
与集群的区别:集群是相同应用或者相同模块。
CAP原则?
一致性
最终一致性:为了可用性,更加放大了一致性要求
弱一致性:为了可用性,允许不同节点之间数据存在一定程度的不一致
强一致性:任何时间点的读操作都返回上一次写操作的结果
每次读取都能收到最新的写入数据或者错误信息
可用性
每个请求都能收到非错误的响应
分区容错性
尽管节点之间会丢弃或者延迟任意数量的消息,但系统仍然能够正常运行,AB集群中A宕机了也不影响B的运行
CAP之父的CAP理论就说了P是基本要求,CA权衡,因为比如写入一个数据的时候,为了保证一致性,写入过程是不可用的。
对应的有哪些模型?
无P:基本没有
无A:容许系统停机或者长时间无响应,Zookeeper,分布式数据库
无C:要高可用,就需要放弃一致性。缓存,退而求其次保证最终一致性。12306买票的时候提示有票,下单就没有了。
BASE理论?
对CAP理论的延申,核心思想即使无法做到强一致性,就采用合适的方式实现最终一致性。
Basically Available(基本可用):在分布式系统出现故障的时候,允许损失部分可用性(
降级:默认返回、异步执行、延迟处理等方式
),保证核心可用。
Soft State(软状态):允许不同节点间副本同步的延时,应状态就是要求很多数据副本都是一致的。
Eventually Consistent(最终一致性):所有数据副本经过一定事件后,最终能够达到一致的状态。
分布式锁?
预想一下这把锁应该是怎样的?要是一把
互斥锁、可重入的锁,最好是阻塞锁(看业务需求),能够获取和释放锁,同时效率要高。
MySQL:比如创建一张锁表,作唯一性约束,加锁添加数据,释放锁删除。
缺点:
锁没有失效时间,没有释放,就没办法访问了--启定时任务
只能是非阻塞的--while死循环
不可重入--判断线程信息
数据库挂了,就进不去了--两个库,数据双向同步
开销大
Zookeeper:用的少
Redis:
set resourceName value ex 5 nx 新命令
怎么避免被其他客户端释放了:有finally,没拿到锁,但是finally执行这种,加上一些业务单号,线程ID这种判断。
实现可重入锁:和Reentrantlock差不多,实现Lock,加上个守护线程(主要就是为MAP里的续期,不依赖于具体的线程,负责这台机器上的所有锁),然后定时任务TimeTask过期时间/3去续期,主要是从一个MAP里面获取KV对,有才续期,不够了就Lua续期。<0的时间不续期。unlock就remove了MAP里的KV对。
会不会宕机死锁:Redisson是基于Netty的时间轮,都是在JVM上的,所以重启后续期任务也没有了。
单点故障:RedLock--引入多个节点解决问题,半数选举,但是也有问题网络延迟时钟漂移
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/538029
推荐阅读
article
基于
STM32
单片机
智能
药盒
定时
吃药宠物喂水食器
蓝牙
APP
设计12_基于
单片机
智能
蓝牙
app
定时
宠物...
功能描述: 本系统由
STM32
F103C8T6
单片机
、LED灯指示、到位开关检测、蜂鸣器报警、
蓝牙
模块及电源组成。1、手...
赞
踩
article
c
语言
数组
介绍...
文章目录一、一维
数组
的创建和初始化1.
数组
的创建2.
数组
的初始化3.一维
数组
的使用4.一维
数组
在内存中的存储二、二维
数组
...
赞
踩
article
数据结构
6:
二叉树
与
堆
_推
排序
和
二叉树
排序
有
什么区别...
树的基本概念
和
堆
结构的实现以及
堆
排序
实现方法都在这里了_推
排序
和
二叉树
排序
有
什么区别推
排序
和
二叉树
排序
有
什么区别 ...
赞
踩
article
领域
驱动
设计
(
DDD
)笔记(一)
基本概念
...
DDD
是一种面向复杂需求的软件
设计
方法,在各大佬口中广泛提及但很少落地,基于代码工程角度我抛砖引玉,整理出我的认识
领域
驱...
赞
踩
article
Docker
安装MySQL5.7_
docker
mysql5.7
...
没安
docker
的先安下,或者直接用
docker
desktop。配好阿里云镜像仓库地址后,拉取镜像还是挺快的。_doc...
赞
踩
article
Windows10
上安装
Anaconda
后
命令提示符
(
cmd
)下无法执行
python
命令解决方...
安装
Anaconda
后一段时间内能够在
命令提示符
(
cmd
)界面运行
python
会进入
python
的交互界面!可是一段时间...
赞
踩
article
Hbase
与
hadoop
的
整合_
hbase
和
hadoop
版本
兼容...
最后,还需要新增一个配置文件backup-masters,用来实现
hbase
集群
的
高可用,为了保证HBase集群
的
高可靠...
赞
踩
article
朴素
贝叶斯
(
Naive
Bayes)...
朴素
贝叶斯
_
朴素
贝叶斯
朴素
贝叶斯
...
赞
踩
article
WPF
中
ListView
样式
设置
ListView
Style、
ListView
ItemStyle绑定双...
为了解决这个问题,你可以通过
设置
ListView
的 VirtualizingStackPanel.IsVirtual...
赞
踩
article
Property
‘
sqlSessionFact
or
y
’
or
‘sqlSessionTemplat...
在Spring框架中,尤其是与MyBatis集成时,
sqlSessionFact
or
y
和sqlSessionTempla...
赞
踩
article
FPGA
实现
卡尔曼
滤波算法——融合
MPU6050
的
Acc和
Gyro
_
fpga
卡尔曼
...
Kalman_Flow_Ctrl.v内部有一个状态机,通过这个状态机来控制pitch和roll
的
预测和更新,输入
的
观测值...
赞
踩
article
阿里
云
OSS
+
PicGo
+
Typora
配置图
床
_
阿里
云
oss当图
床
...
阿里
云
OSS
+
PicGo
+
Typora
搭建图
床
_
阿里
云
oss当图
床
阿里
云
oss当图
床
...
赞
踩
article
git
切换
版本
分支
提交代码
_
git
切换
分支
提交代码...
git
fetch 主仓 release
_
NA
_
APK
_
1.5.5:release
_
NA
_
APK
_
1.5.5
git
ch...
赞
踩
article
安卓
好用的
python
编辑器
,
安卓
python
编译软件_
android
pygame
手机
安装
...
QPython 是一个在 Android 设备上运行 Python 的脚本引擎。它可以让您的 Android 设备运行 ...
赞
踩
article
python
可以
在
安卓上
运行
吗,
python
可以
在
安卓
运行
吗_
android9
支持
python
...
在
Android上
运行
Python早就不是什么新鲜的事情,而我介绍这款软件主要是因为它有
在
原来的基础上进行创新,QPyt...
赞
踩
article
【
优化
器
】(三)
RMSProp
原理 &
pytorch
代码解析_
rmsprop
优化
器
...
在上一篇文章里,我们介绍了AdaGrad,引入了二阶动量来调整不同参数的学习速率,同时它的缺点就是不断地累加二阶动量导致...
赞
踩
article
linux
查看
lun
对应的硬盘,手把手教你在不同
操作系统
下
如何
识别
存储
磁盘
LUN
,
如何
管理
磁盘
LUN
...
一、在LINUX系统下
如何
识别
存储
磁盘
LUN
,
如何
管理
LUN
。1.Netapp 创建一个3774 MB 的
linux
l...
赞
踩
article
OpenAI
双语文档参考
Embeddings
_
openaiembeddings
...
作为具体示例,下面链接的笔记本将此函数的一个版本应用于 AG 新闻数据集(采样到 2,000 篇新闻文章描述),以返回与...
赞
踩
article
微信
小
程序
接入
支付
功能并实现
支付
_
微信
小
程序
支付
功能实现...
因此,在本文中,我们将介绍如何在
微信
小
程序
中实现
微信
支付
。个人感觉类似
微信
小
程序
开发添加的request合法域名, 上面...
赞
踩
article
ASP
.
NET
教师
电子化信息库的
设计
与
实现
...
系统在基于信息管理系统的
设计
与
实现
技术上,结合高校
教师
信息管理的特点,进行总体结构
设计
、数据库表的
设计
以及前台界面和后台...
赞
踩
相关标签
单片机
stm32
宠物
c语言
数据结构
算法
领域驱动
go语言
java
docker
容器
运维
python
开发语言
hbase
hadoop
数据库
机器学习
人工智能
ListView
WPF
mybatis
阿里云
github
云计算