一、从集中式到分布式

集中式概念:

一台或多台计算机组成中心节点,所有的数据、服务均中存储部署于这个中心节点。每个终端机只负责数据录入和输出,而数据的存储和控制均由主机完成。

集中式的优点:

1、中心节点强大的计算和IO处理能力

集中式的问题:

1、主机昂贵

2、单点故障

3、扩容困难

分布式概念:

分布式系统是一个硬件或软件服务分布在不同的网络计算机上,彼此通过消息传递进行通信和协调

分布式的特点:

1、随意分布:分布式系统的多台计算机会在空间上随意分布,且可随时变动

2、无主从之分:Replica是分布式系统最常见概念之一,指分布式系统对数据、服务的冗余方式,为对外提供高可用服务,往往会对数据服务进行副本处理。(数据冗余:在不同节点上持久化同一份数据;服务冗余:多个节点提供同一种服务)。

分布式的问题:

1、并发性:分布式的多个节点并发操作共享资源时(如数据库存储),如何准确高效的协调并发操作

2、缺乏全局时钟:分布式系统通过消息进行通信协调,很难定义两个事件谁先谁后的顺序性。

3、通讯异常:由于网络传输等因素,分布式系统节点间通信会出现异常、消息延迟、丢失的问题

4、脑裂:当网络异常时,分布式系统中部分节点之间网络延时不断增大,最终导致部分节点瘫痪,只有一部分可正常通信

5、一致性问题 :后续详解

分布式环境下三态:

成功、失败、超时

发送方发了----接收方未收到----->消息丢失

发送方发了----接收方收到了----->返回response失败----->response消息丢失

二、三大理论模型

事务四大特征ACID:

1、原子性:每个事务都属于最小操作单元,要么全部成功,要么全部失败。

2、一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。例如,即使取钱操作失败,因为事务没有提交,所以事务 ,所做的修改也不会保存到数据库中,数据还是事务执行前的状态。如果事务执行成功,那数据就是执行后的状态,保持不变。

3、持久性:事务一旦提交,对数据库的更改操作就是持久的。

4、隔离性:多个事务并发执行,彼此独立互不干扰。

未提交读(脏读):A B 同时操作一份数据,A读到B尚未提交的记录。例如B将数据从库里的1累加到10,B事务完成数据库  最终值为10,未提交读隔离级别使得A能读到B从1-10累加过程中的中间数据。

提交度(不可重复读):A 只能读到B提交后的数据。也就是说A只能读到原纪录1或B累加操作事务提交后的10,不会读到B操作的中间数据。

可重复读(幻读):

串行化:事务严格按照一定顺序串行。

对于本地事务和集中式事务采用ACID模型保证数据的一致性。但在分布式系统中,分布式事务由多个一系列操作完成,且参与节点有可能出现在不同节点上。如异地存款、取款服务。难以保证ACID。于是衍生出来CAP和BASE理论模型。

CAP:

一个分布式系统不可能同时满足一致性、可用性和分区容错性。三者择其二。

1、一致性:当数据副本分布在不同系统中,对数据节点A进行更新操作,保证其他所有副本节点都同时更新为最新值。

强一致性:近乎实时同步

弱一致性:允许一定时间范围内的同步延迟。典型应用:最终一致性处理

2、可用性:

系统服务必须一直处于可用状态。衡量:用户每个请求都必须在有限时间内返回结果。

3、分区容错性(可扩展):

因为分布式系统各个节点分布在不同网络区间中,分区容错性要求分布式系统在遇到网络分区故障时,仍需要保证对外提供一致性、可用性服务。

放弃分区容错性意味着放弃节点可在不同网络区间部署的特性-即放弃可扩展性,既然是分布式系统必然要求节点被部署到不同分区服务器中(不可取)。所以一般是在CA间做权衡。

BASE:

1、基本可用:

在系统发生不可预知故障时,允许一部分可用性损失。(响应时间或功能上进行服务降级)

2、软状态:

允许系统中数据存在中间状态。即允许不同加点的数据副本间存在同步延时的情况

3、最终一致性:

系统数据无需实时同步,保证最终数据能达到一致即可。

牺牲一致性来保证可用性,允许数据在一段时间内是不一致的,但最终达到一致即可。

分布式系统架构(一)——三大理论相关推荐

  1. 分布式系统架构常识:CAP理论

    转载自 分布式系统架构常识:CAP理论 什么是CAP理论? 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想.2年后麻省理工学院的Seth Gilb ...

  2. 分布式系统架构系列讲解一(分布式一致性 1):CAP理论

    分布式系统架构系列讲解 - 总目录 集中式应用进行服务化拆分后,必然会出现一个问题:如何保证各个节点(Node)之间的数据一致性? 比如以下场景:用户首先发起一次更新操作,映射到节点A:然后,用户又做 ...

  3. 分布式系统架构与分布式事务十问十答,小伙伴们赶快收藏吧

    大家好,我是冰河~~ 冰河最近被OSCHINA邀请参与[高手问答]活动了,主题是:分布式系统架构与分布式事务.本文将一些问答汇总信息进行了整理分享给大家. 前言 随着互联网的不断发展,企业积累的数据越 ...

  4. 美团即时物流的分布式系统架构设计

    背景 美团外卖已经发展了五年,即时物流探索也经历了3年多的时间,业务从零孵化到初具规模,在整个过程中积累了一些分布式高并发系统的建设经验.最主要的收获包括两点: 即时物流业务对故障和高延迟的容忍度极低 ...

  5. 美团外卖分布式系统架构设计

    背景 美团外卖已经发展了五年,即时物流探索也经历了3年多的时间,业务从零孵化到初具规模,在整个过程中积累了一些分布式高并发系统的建设经验.最主要的收获包括两点: 即时物流业务对故障和高延迟的容忍度极低 ...

  6. 《大规模分布式系统架构与设计实战》

    <大规模分布式系统架构与设计实战> 基本信息 作者: 彭渊 丛书名: 大数据技术丛书 出版社:机械工业出版社 ISBN:9787111455035 上架时间:2014-2-21 出版日期: ...

  7. 分布式系统架构以及 CAP 原理

    精选30+云产品,助力企业轻松上云!>>> 点击蓝色"大数据每日哔哔"关注我 加个"星标",第一时间获取大数据架构,实战经验 ● 本文主要分为 ...

  8. 分布式系统架构的基本原则和实践

    采用分布式系统架构是由于业务需求决定的,若系统要求具备如下特性,便可考虑采用分布式架构来实现: 1.数据存储的分区容错,冗余 2.应用的大访问.高性能要求 3.应用的高可用要求,故障转移 分布式系统遵 ...

  9. 分布式架构中常见理论以及如何才能设计出高可用的分布式架构?

    分布式架构中常见理论以及如何才能设计出高可用的分布式架构? 一.前言 我们就来聊一聊目前主流的分布式架构以及分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了.分布式架构中,SOA和微服务架 ...

  10. Eureka工作原理(Eureka简介Eureka ServerEureka Client自我保护机制分布式系统中的CAP理论Eureka 工作流程)

    一.Eureka简介 Eureka Server(注册中心,相当于zookeeper) Eureka Client: Provider Consumer 多个Eureka就叫集群.集群之间会定时通过r ...

最新文章

  1. [算法 笔记]字符串表达式计算(简易版)
  2. Mybatis的jdbc参数设置
  3. Redis张工的set存储结构(实现)原理
  4. nodejs复制服务器文件,nodejs文件夹深层复制功能
  5. python判断字符_Python判断字符串是否为字母或者数字(浮点数)
  6. 边工作边刷题:70天一遍leetcode: day 6
  7. jni 结构体转对象_JVM系列(一)JVM启动流程和基本结构
  8. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
  9. 596. 超过5名学生的课
  10. linux 下 ethtool 修改网卡eeprom
  11. 求最大李雅普诺夫指数(Largest Lyapunov Exponents,LLE)的 Rosenstein 算法
  12. 用对象的上转型对象、方法重写,抽象编程:求柱体的体积。
  13. 【Ubuntu】QT程序 could not find or load the Qt platform plugin “xcb“ in “报错解决
  14. 五笔中比较难拆解的字
  15. Pose Estimation 入门理解
  16. kafka多线程消费
  17. 调整PC版百度网盘界面清晰度(其他软件也适用)
  18. 使用Pyton将MAC地址转换成指定格式
  19. <转>中兴人的一天,有没有熟悉的样子?
  20. 2022最新官网VMware下载安装教程(超详细)

热门文章

  1. 第三周作业三角形面积计算
  2. iOS 视频播放 MPMoviePlayerViewController
  3. matlab求薛定谔方程,定态薛定谔方程的MATLAB求解(一)
  4. [GDOUCTF 2023] ——web方向全Write up
  5. 现代车载IoT传感器越来越多,美好背后还存在众多问题
  6. iOS 定位(CoreLocation)
  7. python numpy库作用_整理numpy库的常用功能(持续更新…),NumPy,函数,梳理
  8. blr:expression(this.onFocus=this.blur())
  9. 归并排序 c语言详解
  10. 记录-css实现交融文字效果