分布式系统

风陵南·2023-10-31 19:16·27 次阅读

分布式系统

什么是分布式系统

  • 一个系统各组件分别部署在不同服务器上,彼此通过网络通信和协调的系统。
  • 表现形式: 
    • 可以指多个不同组件分布在网络上互相协作,比如电商网站
    •  
    • 也可以一个组件的多个副本组成集群,互相协作如同一个组件,比如数据存储服务中为了数据不丢失而采取多个服务备份冗余,当数据修改时也需要通信来复制数据。
  • 解决单点问题,避免单点故障,然后解决性能问题。

CAP原则

在设计一个分布式项目的时候会遇到三个特性:一致性(Consistency)可用性(Availability)分区容错性(Partition-tolerance)

CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种特性无法同时得到满足,最多满足两个

  • 分区容错性(Partition-tolerance):分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供服务
    • 天然就拥有分区容错性
    • 分区容错性是分布式系统最基本的一个特性,也是必须的特性

 

  • 一致性(Consistency):更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。

 

  • 可用性(Availability):服务一直可用,而且是正常响应时间。(追求性能)

 

 

BASE理论

BASE(Basically Availabl、Soft state、Eventual consistency)是基于CAP理论逐步演化而来的,核心思想是即便不能达到强一致性,也可以根据应用特点采用适当的方式来达到最终一致性(Eventual consistency)的效果。

  • Basically Available(基本可用)
    • 基本可用本质是一种妥协,也就是出现节点故障或者系统过载时,通过牺牲非核心功能的可用性,保障核心功能的稳定运行。
    • 实现基本可用的几个策略:
      • 流量削峰(不同地区售票时间错峰出售):以订票系统为例,在春运期间,开始售票前后会出现海量的请求峰值,可以在不同的时间,出售不同地区的票,将访问请求错开,削弱请求峰值
      • 延迟响应,异步处理(买票排队,基于队列先收到用户买票请求,排队异步处理,延迟响应):用户提交购票请求后,往往会在队列中排队等待处理,可能几分钟或十几分钟后,系统才开始处理,然后响应处理结果。
      • 体验降级(看到非实时的数据,采用缓存数据提供服务):以互联网系统为例,若出现网络热点事件,产生了海量的突发流量,系统过载,大量图片因为网络超时无法显示,那么可以使用小图片代替原始图片,降低图片的清晰度和大小,提升系统处理能力。
  • Soft state(软状态)
    • 原子性(硬状态):要求多个节点的数据副本都是一致的,这是一种硬状态
    • 软状态(若状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,既允许系统在多个不同节点的数据副本存在数据延迟 

    

  • Eventually consistency(最终一致性)
    • 上面说软状态,不可能一直是软状态,必须有个时间期限。在期限过后,应当保证所有副本保持数据一致性。从而达到了数据的最终一致性,这个时间期限取决于网络延时,系统负载,数据复制方案设计等等因素。

    

 

posted @   风陵南  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示