• 分布式系统基础知识


    分布式系统的由来与特点

                集中式部署  ------(阿里的去IOE化)------> 分布式部署
    

    集中式部署:

    分布式部署:

    分布性、对等性、并发性、缺乏全局时钟(各个分布式系统上的时间需要相同)、故障随时会发生

    分布式系统:

    一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

    大型网站架构图:

    H5.APP.PC.------->Lvs+keepalived------>Nginx集群------>应用层(web服务器、分布式session)------->服务层------>基础设施(缓存、消息中间件、搜索引擎、配置中心)------>数据库层

    分布式系统带来的问题:

    通信异常、网络分区、三态(成功,失败,超时)、节点故障

    脑裂问题

    nginx服务端。。。zk客户端

    分布式系统协调“方法论”:

        * CAP理论:
        C,一致性:数据在分布式环境下的多个副本之间能否保持一致性,这里的一致性更多是指强一致性。
        A,可用性:分布式系统一直处于可用状态,对于请求总能在有限的时间内返回结果性
        P,分区容错性:除非整个网络故障,分布式系统在任何网络或单点故障时,仍能对外满足一致性和可靠性的服务。
        一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个基本需求,最多只能同时满足其中的两项;
        放弃P(满足AC):将数据和服务都放在一个节点上,避免因网络引起的负面影响,充分保证系统的可用性和一致性。但放弃P意味着放弃了系统的可扩展性。
        放弃A(满足PC):当节点故障或者网络故障时,受到影响的服务需要等待一定的时间,因此在等待时间里,系统无法对外提供正常服务,因此是不可用的
        放弃C(满足AP):系统无法保证数据的实时一致性,但是承诺数据最终会保证一致性。因此存在数据不一致的窗口期,至于窗口期的长短取决于系统的设计
    
       *  BASE理论:即使无法做到强一致性,但分布式系统可以根据自己的业务特点,采用适当的方式来使系统达到最终的一致性;
        Basically Avaliable  基本可用:当分布式系统出现不可预见的故障时,允许损失部分可用性,保障系统的“基本可用”;体现在“时间上的损失”和“功能上的损失”;e.g:部分用户双十一高峰期淘宝页面卡顿或降级处理;
        Soft state 软状态:允许系统中的数据存在中间状态,既系统的不同节点的数据副本之间的数据同步过程存在延时,并认为这种延时不会影响系统可用性;e.g:12306网站卖火车票,请求会进入排队队列;
        Eventually consistent 最终一致性:所有的数据在经过一段时间的数据同步后,最终能够达到一个一致的状态;e.g:理财产品首页充值总金额短时不一致;
    

    分布式一致性算法(解决拜占庭将军问题)

        2p/3p:2p两阶段提交,数据库分布式事务经常使用的一种分布式算法,算法简单,但有出现阻塞,数据再某情况不一致的问题,3p对2p进行了完善,完善了阻塞以及可用性
        paxos算法:分布式一致性算法,也分两个阶段,遵循少数服从多数的原则,并不需要所有参与者都同意某一协议
        zab:借鉴paxos思路,是zookeeper解决分布式一致性所使用的算法
    

    分布式环境协调和通信到底有什么场景?

        数据发布订阅:
        负载均衡:
        命名服务:
        Master选举:
        集群管理:
        配置管理:
        分布式队列:
        分布式锁:
  • 相关阅读:
    linux安装及入门
    20165103学习基础和C语言基础调查
    20165103 我期望的师生关系
    自旋锁,偏向锁,轻量级锁 和 重量级锁
    volatile的使用及其原理
    (PASS)什么是原子性和原子性操作?
    Linux操作系统 和 Windows操作系统 的区别
    Linux常用命令大全(很全面)
    CAS机制总结
    CAS -- ABA问题的解决方案
  • 原文地址:https://www.cnblogs.com/tonbby/p/9853801.html
Copyright © 2020-2023  润新知