第一篇:《从Paxos到zookeeper分布式一致性原理与实践》分布式基本概念
Posted 热点猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一篇:《从Paxos到zookeeper分布式一致性原理与实践》分布式基本概念相关的知识,希望对你有一定的参考价值。
集中式到分布式
集中式架构:
A. 集中式定义为:指一台或多台计算机组成的中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统的所有功能均由其处理。
B. 通俗一点解释:单机程序、集群程序都可以叫做集中式架构。
分布式架构:
A. 分布式定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统,出自《分布式系统概念与设计》。
B. 通俗一点解释:多台计算机需要进行相互通信,共同完成一个功能。
两者不同点:集中式多台计算之前不需要通信,而分布式多台计算之间需要通信,共同完成特定功能。
既然分布式是需要共同协作的,那么需要有自己独特的特征与需要去解决独特的问题。
分布式特征:
1. 分布式:也就是多台计算机
2. 对等性:也就是每个计算的所有数据要一致;也就是说,你吃糖果,我也要吃糖果,大家都是一样的。
3. 并发性:共享的数据存在并发性。也就是说,只有一个糖果,我们一起吃。
4. 缺乏全局时钟:分布式有可能分布在不用的地域。所有存在这个时区不同的问题。也就是说,我的服务器在北京,还有一个服务在美国,这个时间是不一样的。
5. 故障总会发生:怎么解释这句话呢?就好像两人三足的游戏,如果其中一个人在过程中受伤了,或者一个同学的鞋子掉了,或者一个同学跟不上大家的速度摔倒了,都有可能会出现各种各样的问题,根据墨菲定律--坏的事情总会发生。
分布式特征伴随的各种问题:
那么有这5个特征就会伴随出现一些奇奇怪怪的问题?比如分布式中一个计算机宕机(也就是挂了)怎么办?事务怎么处理?并发怎么处理?全局时钟怎么处理?计算机之间的网络出现问题怎么办?等一系列不是我们这些小弟弟们可以想到与遇到的,只有去研究分布式的大佬们他们才能发现问题,并给出解决方案。我们可以站在巨人的肩膀上去虚心学习。
分布式环境的各种问题:
1. 计算机之前的通信异常:就是网络挂B了,或者光纤被别人剪了
2. 网络分区(脑裂):网络情况出现问题时,只有部分节点可以工作。这个也很好理解,就是一个系统有10台计算机,5台挂了,其他机器还可以让系统正确使用。
3. 三态:单机中调用一个接口只会有成功或者失败。而分布式因为有了计算机之间的通信,网络可能异常,所以存在超时的状态,发消息过去超时或者回复消息超时。
4. 节点故障:计算机挂B
针对分布式所产生的问题,不能任由错误发生,想要这一可用分布式系统不是一件简单的问题。单机架构可用按照MVC模式去搭建,遇到问题随时解决或者换组件就行,但是分布式系统既然已经知道会存在这么多的问题,于是就需要一一解决。以下是推进分布式架构的大佬们给出小弟们的理论知识。
ACID到CAP/BASE
ACID相信大家都很熟悉了,也就是数据库事务的四大特性。不了解的同学可以去百度一大堆。那我们就说下CAP/BASE,其实网上也一大堆,也可以百度上。这里我只说下为什么从ACID到CAP/BASE。他们之间的关联就是数据的一致性。事务是保证数据一致性的,可以说基础吧。事务在异常的情况下也可以保证数据的一致性,这是数据的强一致性(有强就有弱)。那为什么要从一致性说呢?因为分布式可能存的各种问题都会导致数据不一致,而数据不一致的话可以说这个系统理论上就是不可用的。
总结:所以我的理解是分布式问题就是数据一致性的问题,围绕一致性问题去解决衍生的问题。(还是个菜鸟,有不对的地方可以关注微信指出,不同的意见可以一起讨论)
以上是关于第一篇:《从Paxos到zookeeper分布式一致性原理与实践》分布式基本概念的主要内容,如果未能解决你的问题,请参考以下文章
从Paxos到Zookeeper分布式一致性原理与实践 -笔记
从Paxos到zookeeper分布式一致性原理与实践-Zookeeper与Paxos
《从Paxos到Zookeeper:分布式一致性原理与实践》PDF下载