博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式相关理论汇总
阅读量:4075 次
发布时间:2019-05-25

本文共 1830 字,大约阅读时间需要 6 分钟。

  分布式相关理论文档:

    一、分布式的基本概念

      1、分布式概述:

        分布式(distributed)是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段,将一个业务拆分成不同的子业务,分布在不同的机器上执行。服务之间通过远程调用协同工作,对外提供服务

        该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式缓存、分布式数据库、分布式计算、分布式文件系统等,一些技术如MQ、Redis、zookeeper等都跟分布式有关。

      分布是有二种形式:

        水平扩展:当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供 相同的服务;

        垂直拆分:前端有多种查询需求时,一台机器扛不住,可以将不同的业务需求分发到不同的机器上;
      
      2、什么是集群
        集群(cluster)是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服;
        特点:可扩展性、高可用性
        能力: 负载均衡、集群容错

      3、什么是微服务

        微服务微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间通过远程调用协同工作。

      4、分布式与集群的区别是什么?

        分布式: 一个业务分拆多个子业务,部署在不同的服务器上。
        集群: 同一个业务,部署在多个服务器上。

      5、分布式的设计思路

        中心化设计和去中心化设计。

   二、CAP定理

      1、概述:CAP定理(CAP theorem)它指出对于一个分布式计算系统来说,不可能同时满足以下三点

        Consistency(一致性):分布式系统数据在多个副本内保持一致(严格的一致性)。
        Availability(可用性):指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应。(数据可能过期)
        Partition tolerance(分区容错性):分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

        Spring Cloud在CAP法则上主要满足的是A和P法则,Dubbo和Zookeeper在CAP法则主要满足的是C和P法则。

   
        在某时刻如果满足AP,分隔的节点同时对外服务但不能相互通信,将导致状态不一致,即不能满足C;如果满足CP,网络分区的情况下为达成C,请求只能一直等待,即不满足A;如果要满足CA,在一定时间内要达到节点状态一致,要求不能出现网络分区,则不能满足P。 C、A、P三者最多只能满足其中两个。
        
        当发生网络分区的时候,如果我们要继续服务,那么强一致性和可用性只能2选1。也就是说当网络分区之后P是前提,决定了P之后才有  C和A的选择。也就是说分区容错性(Partition tolerance)我们是必须要实现的。
        对于分布式系统工程实践,CAP理论更合适的描述是:在满足分区容错的前提下,没有算法能同时满足数据一致性和服务可用性。

  三、Base定理

    BASE理论由eBay架构师Dan Pritchett提出,在2008年上被分表为论文,并且eBay给出了他们在实践中总结的基于BASE理论的一套 新的分布式事务解决方案。

    BASE 是 Basically Available(基本可用) 、Soft-state(软状态) 和 Eventually Consistent(最终一致性) 三个短语的 缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,它大大降低了我们对系统的要求。

    核心思想:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。也就是牺牲数据的一致性来满足系统的高可用性,系统中一部分数据不可用或者不一致时,仍需要保持系统整体“主要可用。

    1. 基本可用

      基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。但是,这绝不等价于系统不可用。

    2. 软状态

      软状态指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。

    3. 最终一致性

      最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

  四、分布式事务
    待续...

   参考:

转载地址:http://feuni.baihongyu.com/

你可能感兴趣的文章
TCP的几个状态对于我们分析所起的作用SYN, FIN, ACK, PSH,
查看>>
网络游戏客户端的日志输出
查看>>
关于按钮的mouseOver和rollOver
查看>>
《多线程服务器的适用场合》例释与答疑
查看>>
Netty框架
查看>>
Socket经验记录
查看>>
对RTMP视频流进行BitmapData.draw()出错的解决办法
查看>>
多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
查看>>
FMS 客户端带宽计算、带宽限制
查看>>
在线视频聊天(客服)系统开发那点事儿
查看>>
语法解析器!
查看>>
SecurityError Error 2148 SWF 不能访问本地资源
查看>>
Flex4的可视化显示对象
查看>>
Flex:自定义滚动条样式/隐藏上下箭头
查看>>
烈焰SWF解密
查看>>
Qt 静态编译后的exe太大, 可以这样压缩.
查看>>
3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇
查看>>
C#的扩展方法解说
查看>>
.linearDrag on rigidbody / rigidbody2D in code?
查看>>
mute
查看>>