1.    分布式系统

1.1  分布式的特点

分布性

分布式系统中的多台计算机都会在空间上随意分布,同时,机器的分布情况也会随时改变。

对等性

分布式系统中的计算机没有主从之分,既没有控制整个系统的主机,也灭有被控制的从机,组成分布式系统的所有计算机节点都对等的的。

并发性

在一个计算机网络中,程序运行过程中的并发性操作也是非常常见的行为。

1.2  分布式环境中存在的问题

通信异常

由于分布式系统必然引入了网络因素,而由于网络本身的不可靠性,因此也引入了额外的问题。分布式系统需要在各个节点之间进行网络通信,因此每次网络通信都伴随着网络不可用的风险。

网络分区

当网络由于发生异常情况,导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有一小部分节点能够进行正常通信,而另一些节点由于网络原因,被认为错误节点---我们称为这个现象为网络分区,也就是俗称的“脑裂”。

节点故障

组成分布式系统的服务器节点出现的宕机或者“僵死”现象。

2.    从ACID到CAP/BASE

事务(Transaction)是由一系列对系统中数据进行访问与更新的操作锁组成的一个程序执行逻辑单元(Unit),侠义上的事务特指数据库的访问。

2.1  ACID

原子性(Atomicity):

事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现以下两种状态之一。

一致性(Consistency):

事务的一致性是指事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性的状态。也就是说,事务的执行结果必须是使数据库从一个一致性状态转变到另一个一致性状态,因此数据库只包含成功事务提交的结果时,就能说明数据库处于一致性状态。

隔离性(Isolation)

事务的隔离性是指在并发环境中,并发的事务时相互隔离的,一个事务的不能被其他事务相干扰。也就时说不同的事务在并发操作相同的数据时候,每个事务都有各自完整的数据空间,即一个事务内部的操作及使用的数据对其他并发事务时隔离的,并发执行的各个事务之间是不能相互干扰的。

持久性(Durability)

事务的持久性也被称为永久性,是指一个事务一旦提交,它对数据库中对应数据的状态变更应该是永久的。换句话说,一旦某个事务成功结束,那么它对数据库所做的更新就必须被永久保存下来。

在单机数据库中,我们很容易能够实现这一套满足ACID特性的事务处理系统,但在分布式数据库中,数据分散在不同的机器上,如何对这些数据进行分布式的事务处理具有非常大的挑战。

2.2  分布式事务

随着分布式计算的发展,事务在分布式的计算领域也得到了广泛的应用。由于在分布式数据库中,数据分散在不同的机器中,如何对这些数据进行分布式的事务处理具有非常大的挑战。因为分布式系统具有上述提到的各种问题。

分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。但由于在分布式事务中,各个子事物的执行是分布式的,因此要实现一种能够保证ACID特性的分布式事务处理系统就显得格外复杂。

2.3  CAP和BASE理论

CAP理论

CAP理论告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Avaliability)和分区容错性(P: partition tolerance)这三个基本需求,最多只能满足其中两项。

一致性(Consistency)

在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。

可用性(Avaliability)

可用性是指系统提供的服务必须处于一直可用的状态,对于用用户的每一个操作请求总是能够在有限的时间内返回正确的结果。

容错性(P: partition tolerance)

分区容错性约束了分布式系统需要具有如下特性:分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境出现故障。

BASE理论

eBay的架构师Dan Pritchett源于对大规模分布式系统的实践总结,在ACM上发表文章提出BASE理论,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。

BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)

基本可用(Basically Available)

基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。

电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。

软状态( Soft State)

软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。

最终一致性( Eventual Consistency)

最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

大数据技术:分布式系统和分布式事务相关推荐

  1. 大数据技术之Hadoop分布式文件系统HDFS系统知识整理(从入门到熟练操作)

    系列博客 1.大数据技术之Hadoop完全分布式集群搭建+Centos7配置连通外网和主机 2.大数据技术之Hadoop编译源码 3.大数据技术之Hadoop分布式文件系统HDFS系统知识整理(从入门 ...

  2. 大数据技术入门之分布式处理、并行处理和MapReduce

    什么是大数据? 百度百科解释为: "是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样 ...

  3. 大数据技术:Zookeeper分布式协调服务

    1 Zookeeper概念简介 Zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务 A.  zookeeper是为别的分布式程序进行服务的 B. zookeeper本身就是 ...

  4. 大数据技术下 分布式数据库何去何从?

    转自:安华信达的文章 链接地址:http://www.sohu.com/a/133784835_481676 一.大数据技术的发展 大数据技术从诞生到现在,已历经了十几个年头,市场上也早已有公司或机构 ...

  5. 水环境模型与大数据技术融合研究

    点击上方蓝字关注我们 水环境模型与大数据技术融合研究 马金锋1, 饶凯锋1, 李若男1,2, 张京1, 郑华1,2 1 中国科学院生态环境研究中心城市与区域生态国家重点实验室,北京 100085 2  ...

  6. 大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书) - 电子书下载 -(百度网盘 高清版PDF格式)...

    大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书)-杨传辉 在线阅读                   百度网盘下载(89hy) 书名:大规模分布式存储系统:原理解析与架构实战 (大数据技 ...

  7. 大数据产品开发流程规范_大数据技术思想入门(三):分布式文件存储的流程

    如果你不喜欢阅读文字的话,可以选择滑到最后看 视频讲解 哟~~~ 进程和 RPC 在上一篇文章中,我们讲解了要解决好大数据集的存储问题,需要引入一个主从结构的集群,其中,主服务器用于存储元数据,从服务 ...

  8. 53.大数据之旅——java分布式项目14-信息检索技术之Lucene,Solr

    信息检索技术 概念介绍 全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法.全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统. 全文检索主要对非结构化数据的数据检索. ...

  9. 大数据技术第三章-分布式文件系统HDFS

    前言:马上期末考试了,瑟瑟发抖~ 总结了一些大数据技术原理和应用的知识点,如有错误,请求指正~ 大数据技术原理与应用期末复习前两章知识点 1.HDFS集群采用主从结构,节点主要包括名称节点和数据节点 ...

  10. [大数据技术与应用省赛学习记录二]——模块一(HADOOP完全分布式集群搭建)

    **在操作前,先梳理一下HADOOP完全分布式需要做些什么,不然像无头的苍蝇一样,永远不知道做什么.因为我本人比赛是一台服务器Centos 7,与三台客户端Ubuntu 18.04,所以以物理机的角度 ...

最新文章

  1. 元宇宙中可跨语种交流,Meta 发布新语音模型,支持128种语言无障碍对话
  2. linux内核层功能 和核心,Linux内核研发工程师
  3. Java面向对象知识概括归纳与总结
  4. WebKit与event.layerX和event.layerY有关的问题
  5. 计算机原理与基础 —— 进制之间的转换(二进制与十、八、十六禁止之间的转换)
  6. Android短信验证
  7. sudo apt install镜像_将Docker镜像安全扫描步骤添加到CI/CD管道
  8. 到底什么是极简主义?
  9. weex安装环境_WEEX跨平台开发环境搭建
  10. inline内联函数的优缺点
  11. C++ 面向对象(三)—— 类之间的关系
  12. 十大经典排序算法之冒泡排序【一】
  13. FIIL邬宁:AI能锦上添花,但耳机成不了下一个智能音箱
  14. oracle服务器结构01
  15. 修改SAP下载文件路径
  16. 安卓pdf取词翻译软件_写论文,你应该知道这些好用的论文翻译软件!
  17. android 仓库管理 毕业论文,基于Android的仓库管理系统的设计与实现.zip
  18. UNews | 1.8亿!优维科技完成C轮融资!
  19. php dingo和jwt,三、Laravel5.4+Dingo+JWT 开发API
  20. 榆树计算机课,吉林省榆树市弓棚镇武龙中学校七年级信息技术:第九课 Excel表格计算 教案+课件 (2份打包)...

热门文章

  1. bzoj3450 Easy(概率期望dp)
  2. 机器学习常用算法(LDA,CNN,LR)原理简述
  3. MySql 几个命令
  4. HDOJ1269(迷宫城堡)
  5. Java8新特性:接口的默认方法与接口的静态方法
  6. “中文四六级”考试来了!《国际中文教育中文水平等级标准》发布
  7. 千位亿万富豪调研:六成富豪担心继承人婚姻问题致财富外流
  8. 深度学习之利用TensorFlow实现简单的全连接层网络(MNIST数据集)
  9. 北京大力度建设城市绿道,我们身边处处是风景
  10. 交换机是如何对数据包打标签去标签的_如何使用PC抓带vlan标签的数据包?王海军老师告诉你...