
分布式
对面『胶己人』
This is my note, not my blog
展开
-
分布式系统学习(五)异地多活高可用
目的:避免机房级别的故障导致服务不可用保持无限扩展的能力,机器数量不受限于单机房容量用户就近接入,全球化部署设计原理异地多活是个AP方案,在一定程度上舍弃了一致性只保证核心业务实现异地多活,并不是所有业务都可以实现异地多活(比如注册不做异地多活,登录可实现异地多活)遇到的挑战及问题路由实现让特定用户访问特定的机房,尽量避免跨机房调用机房故障切换数据不一致问题解决在发生机房级别的failover时,如果目标机房的状态没有和故障机房完全同步,且同步的消息丢失,没有同步的状态就会丢失原创 2020-05-23 01:34:11 · 632 阅读 · 0 评论 -
分布式系统学习(四)CAP理论与一致性协议
CAP 定理是分布式系统设计中最基础,也是最为关键的理论。它指出,分布式数据存储不可能同时满足以下三个条件。一致性(Consistency):每次读取要么获得最近写入的数据,要么获得一个错误。可用性(Availability):每次请求都能获得一个(非错误)响应,但不保证返回的是最新写入的数据。分区容忍(Partition tolerance):尽管任意数量的消息被节点间的网络丢失(或延迟),系统仍继续运行。这里的可用性指的是所有节点可用当系统进入分区模式之后,有两种选择:选原创 2020-05-23 00:10:33 · 394 阅读 · 0 评论 -
分布式系统学习(三)一致性模型
目的:一致性模型本质上是进程与数据存储的约定:如果进程遵循某些规则,那么进程对数据的读写操作都是可预期的。这里的进程指的是业务进程,数据存储指的是数据库服务(这个服务可能是个分布式服务)强一致性模型能够保证所有进程对数据的读写顺序都保持一致的一致性模型称为强一致性模型线性一致性模型在线性一致性模型中,进程对一个数据项的读操作,它期待数据存储返回的是该数据在最后一次写操作之后的结果。从表面上看,这是一个很正常符合逻辑的现象,但在分布式系统(数据存储)中确是没办法做到的。由于缺少一个全局的物理时钟原创 2020-05-20 00:41:13 · 630 阅读 · 0 评论 -
分布式系统学习(二)物理时钟同步
目的:让一个互联网公司内部遍布世界各地的服务器保持同一个物理时间,时间误差控制在毫秒级别里面是最好的背景:时间概念世界时:地球自转为基础的时间计量系统,不是一种均匀的时间系统原子时:以物质的原子内部发射的电磁振荡频率为基准的时间计量系统。原子时规定1958年1月1日世界时为0时,秒长定义为铯-133原子基态的两个超精细能级间在零磁场下跃迁辐射9192631770周所持续的时间,是一种较恒定的时间系统。协调时:以原子时秒长为基础,在时刻上尽可能接近于世界时的时间计量系统。为了保持世界协调时与世界原创 2020-05-18 00:57:44 · 1082 阅读 · 0 评论 -
分布式系统学习(一)逻辑时钟与向量时钟
目的:由于分布式系统中各个机器之间的系统时间同步差异,导致无法用物理时钟准确衡量事件的先后顺序。因此,提出了逻辑时钟这一概念,用来定义分布式系统中所有事件的发生顺序背景偏序与全序关系,这在大学的线性代数课程中有相关概念。简单的讲,对于一个数字集合,如果能够定义两两之间的先后关系,则该集合为全序关系。如果该集合中分为多个子集,子集内部两两有先后关系,而子集之间没有先后关系,则该集合为偏序关系。逻辑时钟如上图所示,根据逻辑时钟的原理,我们可以定义这些事件集的一个偏序关系。在这个偏序集中,存在因果关系原创 2020-05-18 00:16:22 · 1710 阅读 · 0 评论