首页 > 其他分享 >分布式系统

分布式系统

时间:2023-10-31 19:37:30浏览次数:30  
标签:可用性 系统 容错性 分布式系统 一致性 数据

什么是分布式系统

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

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

    

 

标签:可用性,系统,容错性,分布式系统,一致性,数据
From: https://www.cnblogs.com/1873cy/p/17800937.html

相关文章

  • 分布式系统【秒杀系统设计】
    一、场景   秒杀活动属于临时高并发写请求,在活动即将开始之前,面临的是高并发的毒请求,因为客户会疯狂刷新活动页面了解内容。二、采用策略    大概策略有以下几种:缓存策略、   2.1、缓存策略    商品的数据可以放在缓存中,或者将静态资源放到CDN中(CDN......
  • Kafka 在分布式系统中的 7 大应用场景
    Kafka介绍Kafka是一个开源的分布式流式平台,它可以处理大量的实时数据,并提供高吞吐量,低延迟,高可靠性和高可扩展性。Kafka的核心组件包括生产者(Producer),消费者(Consumer),主题(Topic),分区(Partition),副本(Replica),日志(Log),偏移量(Offset)和代理(Broker)。Kafka的主要特点有:数据磁盘持久化:Ka......
  • 分布式系统分析
    什么是分布式系统分布式系统是支持分布式处理的软件系统,是由通信网络互联的多处理机体系结构上执行任务的系统。一个业务拆分为多个子业务,落地成不同的服务,将各个服务部署在不同的容器上。各个服务之间通过某种协议通信交互。好处是有更好的可靠性,可扩展性,但也带来了一致性问题......
  • Spring Cloud微服务架构:实现分布式系统的无缝协作
    文章目录1.什么是微服务架构?2.SpringCloud简介3.使用SpringCloud构建微服务3.1创建SpringBoot应用程序3.2添加SpringCloud依赖3.3配置应用程序3.4创建REST端点3.5连接各个服务3.6启动Eureka服务器4.构建分布式系统4.1服务注册与发现4.2负载均衡4.3配置管理4.4断......
  • 分布式系统笔记目录
    分布式系统笔记目录本目录源自我校的分布式系统课程,我觉得很有趣,就制作了笔记并分享老师的笔记的目录结构感觉还是有些问题,但是当时学习时间比较紧,就没来得及排版仅供学习使用第一章:基本概念分布式系统相关概念、与并行计算的关系、云计算概念、分布式计算的背景、目的......
  • 详解分布式系统核心概念——CAP、CP和AP
    最近研究Sykwalking,当调研oap如何进行集群部署时发现:skywalkingoap之间本身不能搭建集群,需要一个集群管理器来组建集群,它支持nacos、zookeeper、Kubernetes、Consul、Etcd五种集群管理器。我重点比较了nacos和zookeeper,发现二者最大的区别是Zookeeper采用了CP架构,nacos既支持CP......
  • 什么是分布式系统
    分布式系统是由多个独立计算机或服务器组成的系统,这些计算机或服务器通过网络进行通信和协作,共同完成一个或多个任务。分布式系统的设计目标是提高系统的可靠性、可扩展性、性能和容错性。在分布式系统中,各个计算机或服务器被称为节点,它们可以是物理机器、虚拟机、容器等。这些节......
  • 分布式系统设计
    1.分布式系统组件---消息队列RocketMq(重要特性:事务消息,半事务机制首选方案,最终一致性,死信队列,补偿方案)2.分布式系统组件---消息队列Kafka3.高并发系统,提升QPS,提升并发能力利器----Redis集群高可用方案4.大型分布式数据库系统选型和研究--- TiDB......
  • 读发布!设计与部署稳定的分布式系统(第2版)笔记33_混沌工程
    1. 康威定律1.1. 梅尔文·康威1.1.1. MelvinConway1.1.2. 1968年1.1.3. 在设计系统时,组织受制于其自身的沟通结构,这使得它设计的系统结构与沟通结构相一致。1.1.3.1. 社会学现象1.2. 要在系统内部或系统之间构建接口,两个人必须以某种方式沟通有关该接口的规范1.2.......
  • 分布式系统架构
    分布式系统的架构思路  一、前言在计算机领域,当单机性能达到瓶颈时,有两种方式可以解决性能问题,一是堆硬件,进一步提升配置,二是分布式,水平扩展。当然,两者都是一样的烧钱。今天聊聊我所理解的分布式系统的架构思路。二、分布式系统的两种方式平时接触到的分布式系统有很多......