分布式环境特点

分布性

地域,区域,机房,服务器不同导致分布性

并发性

程序运行中,并发性操作很常见,比如同一个分布式系统中的多个节点,同时访问一个共享资源(数据库,分布式存储)

无序性

进程之间的消息通信,会出现顺序不一致的问题。

分布式环境面临问题

各个服务节点通信

网络本身的不可靠,因此涉及到一些的网络通信问题(每一个分布式项目都必须面临问题)。

网络分区(脑裂)

当网络发生异常情况的时候,导致分布式系统中部分节点之间网络延时不断变大,最终导致组成分布式系统所有节点中,只有部分节点能够正常通信。分布式系统出现小集群问题

三态问题

分布式架构 成功,失败,超时【网络问题】三种状态

分布式事务问题

ACID(原子性,一致性,隔离性,持久性) => 事务特征

原子性: 整个事务操作过程中,所有操作要不全部成功,要不就全部失败。

一致性: 整个操作过程中所有数据操作前后保持一致

隔离性: 事务和事务之间操作是完全隔离。

持久性:事务一旦提交成功,所有数据不能更改。

分布式理论:

CAP

Consistency (一致性) :数据在多个副本中时刻保持一致。

强一致性: 同一个时刻,每一个节点中的数据都是一致的。

弱一致性(最终一致性): 允许在一小个时间段内容,各个节点上面的数据部分不一致,但是最终得到结果是一致的。(消息队列,异步方式)

Availability (可用性)

系统总能在规定时间内,处理完用户的请求。

Partition Tolerance(分区容错)【最典型的的脑裂问题】

分布式系统在遇到任何网分区故障的时候,仍然需要保证对外提供满足一致性和可用性的服务。

一个分布式系统中无法满足以上三个条件,只能满足2个

放弃P=> 将所有的数据都在一个分布式节点上面[单点故障],放弃系统扩展性问题。(分区容错在分布式系统中是必须存在的)

PA 放弃强一致性,保留数据的最终一致性,承诺一个时间让数据达到一致状态

PC 放弃可用性, 系统一旦出现故障问题,在系统故障恢复期间是无法对外提供服务的。

只针对非关系型数据库(NOSQL)

Base

Bascially Avaliable(基本可用)

允许损失部分可用性,保证核心业务可用。

Soft-State (软状态/弱性事务)

系统中存在一个中间的状态,这个中间状态不会影响系统整体可用。(使用异步方式处理)

Eventually Consistency(最终一致性)

允许在一小个时间段内容,各个节点上面的数据部分不一致,但是最终得到结果是一致的。

中心化和去中心化

中心化: 分布式系统中每一个节点按照角色分工(zk集群,leader,follower,observer)

存在最大的问题:领导出现故障,导致集群问题。

主备.(潜在问题: 领导管理能力问题)

zookeeper/etcd

去中心化: 最重要的问题是脑裂问题。leader不是固定的,如果leader出现问题,会动态选出新的leader也可以理解成去中心化

分布式特点理解-Zookeeper准备的更多相关文章

  1. 分布式服务框架 Zookeeper(转)

    分布式服务框架 Zookeeper -- 管理分布式环境中的数据 Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题 ...

  2. 分布式协调服务Zookeeper扫盲篇

    分布式协调服务Zookeeper扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维工程师对kubernetes(k8s)可能比较熟,那么etcd(go语言实现)分布式协 ...

  3. 简单理解Zookeeper的Leader选举【转】

    Leader选举是保证分布式数据一致性的关键所在.Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况.在讲解Leader选举前先了解 ...

  4. 分布式服务框架 Zookeeper — 管理分布式环境中的数据

    本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Zab协议.通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们理解. ...

  5. 分布式服务框架 Zookeeper(四)官方编程指南

    握草,是不是加了官方两个字就可以唬人了. 使用ZooKeeper开发分布式应用 简介 这篇文档是为了那些想利用ZooKeeper的协调服务来构建分布式应用的开发人员而写滴,不相干的走一边去哈.在这儿有 ...

  6. 分布式服务框架 Zookeeper(一)介绍

    一.概述 ZooKeeper(动物园管理员),顾名思义,是用来管理Hadoop(大象).Hive(蜜蜂).Pig(小猪)的管理员,同时Apache Hbase.Apache Solr.LinkedIn ...

  7. 个人学习分布式专题(二)分布式服务治理之分布式协调技术Zookeeper

    分布式协调技术Zookeeper 2.1 zookeeper集群安装部署(略) 2.2 zookeeper的基本原理,数据模型 2.3 zookeeper Java api的使用 2.4 zookee ...

  8. 简单理解Zookeeper的Leader选举

    Leader选举是保证分布式数据一致性的关键所在.Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况.在讲解Leader选举前先了解 ...

  9. 分布式中,zookeeper的部署

    一:准备 1.概述 为分布式应用提供协调服务的项目 类似于文件系统那样的树形数据结构 目的:将分布式服务不再由于协作冲突而另外实现协作服务 2.数据结构 树形数据结构 zookeeper的每个节点都是 ...

随机推荐

  1. 反向代理,负载均衡——nginx理论

    nginx是什么? nginx是一个强大的web服务器软件,用于处理高并发的http请求和作为反向代理服务器做负载均衡.具有高性能.轻量级.内存消耗少,强大的负载均衡能力等优势.  nginx架构? ...

  2. asp.netMVC中配置automap

    第一.新建类库,以解决方案名XXX为例,建立子类库名为  XXX.AutoMapper. 第二. XXX.AutoMapper类库中,添加对automap的引用. 第三.创建映射文件类 ModelPr ...

  3. python获取内存地址上存储的值

    在python中,可以通过id()这个方法来获取对象的内存地址. 但是反过来,怎么获取内存地址上存储的值? 先看一段代码: from ctypes import string_at from sys ...

  4. Git本地初始化并推送到远程仓库

    git常用命令 1.全局配置git用户名邮箱 git config --global user.name '你的名字' git config --global user.email '你的邮箱地址' ...

  5. 使用现代 C++ 技术增强多核优化

    在本文中,读者将了解如何使用现代 C++ 技术跨内核并行处理数据.通过研究示例代码,下载应用和学习技术,开发人员将更好地了解英特尔® 架构和多核技术.通过学习如何处理潜在的性能瓶颈和并发性问题,可以使 ...

  6. 对scrapy进行单元测试 -- 使用betamax

    使用betamax进行单元测试 爬虫代码 测试代码 对于scrapy的单元测试,官方文档并没有提到,只是说有一个Contract功能.但是相信我,这个东西真的不好用,甚至scrapy的作者在一个iss ...

  7. android4.2 webkit 中的jni

    在android 应用开发中使用WebView,当一个webveiw 被创建时, 也会去load 他所对应的动态库,这里动态库也就是传说中的webkit 内核等. C++ 层与java 层的交互也是通 ...

  8. python中True,False与0,1之间的关系

    demo1 >>> print(True == 1) >>> print(True == 2) >>> print(False == 0) > ...

  9. python(递归实例)

    摘要:在学习python递归知识点时,总是一知半解,似懂非懂的..在反复看视频翻资料同时,也收集案例来分析求证..通过分析下面几个案例希望能有所帮助!!! 1.用递归的方法实现阶乘... def nu ...

  10. 【神经网络与深度学习】YOLO windows 配置《Darknet配置》

    作者配置时的环境 visual studio 2013  显卡 GTX 960M  CUDA 7.5 OpenCV 2.4.9  pthreadpthread 下载地址 YOLO官网 [http:// ...