首页 > 其他分享 >分布式理论

分布式理论

时间:2023-03-22 09:15:08浏览次数:56  
标签:机器 理论 可用性 满足 分布式系统 一致性 数据 分布式

 

一、分布式理论

1.CAP理论

CAP理论是说对于分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(A, Availability)、分区容忍性(P,Partition Tolerance)中的两者。

 

1.一致性

是指对于每一次读操作,都能够读到最新写入的数据,且每个节点读取到的数据是一致的。

 

对于客户端来说,一致性指的是并发访问更新过的数据如何获取的问题。


从服务端来看,则是更新如何复制分布到整个节点,以保证数据最终一致。

从多个应用系统来看,是保证各个业务系统冗余的数据和主数据系统的数据一致性。

 

1.一致性级别

1、强一致性

这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大

 

2、弱一致性

这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别)后,数据能够达到一致状态

 

3、最终一致性

最终一致性是弱一致性的一个特例,系统会保证在一定时间内,能够达到一个数据一致的状态。这里之所以将最终一致性单独提出来,是因为它是弱一致性中非常推崇的一种一致性模型,也是业界在大型分布式系统的数据一致性上比较推崇的模型。

 

在实践中,多个系统要实现最终一致性的兜底解决办法多数是通过数据比对来实现的,如多个业务系统通过比对将生产者数据备份的大数据平台进行比对,从而实现各个业务系统的最终一致性。

 

2.可用性

可用性:是指对于每一次请求,都能够得到一个及时的、非错的响应。
系统能够很好的为用户服务,不出现用户访问服务时服务器不可用,或者访问超时等用户体验不好的情况。

3.分区容忍性

The system will continue to function when network partitions occur.

即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

 

分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。

它跟趋向于单机模式的对比,如一台机器宕机了,其他机器一样能够提供同等的服务。但机器部署得越多,一致性和可用性就越难保证。

比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。

4. CAP的选型

CP和AP:分区容错是必须保证的,当发生网络分区的时候,如果要继续服务,那么强一致性和可用性只能 2 选 1

C A 满足的情况下,P不能满足的原因:
数据同步©需要时间,也要正常的时间内响应(A),那么机器数量就要少,所以P就不满足。
若p不能满足,就已经趋向于单机了。

CP 满足的情况下,A不能满足的原因:
数据同步©需要时间, 机器数量也多§,但是同步数据需要时间,所以不能再正常时间内响应,所以A就不满足

AP 满足的情况下,C不能满足的原因:
机器数量也多§,正常的时间内响应(A),那么数据就不能及时同步到其他节点,所以C不满足

 

标签:机器,理论,可用性,满足,分布式系统,一致性,数据,分布式
From: https://www.cnblogs.com/daiwei-dave/p/17242341.html

相关文章

  • 分布式锁的实现
    多线程对同一资源的竞争,需要用到锁,例如Java自带的Synchronized、ReentrantLock。但只能用于单机系统中,如果涉及到分布式环境(多机器)的资源竞争,则需要分布式锁。分布式锁的主......
  • 卷积神经网络理论
    卷积基本概念卷积操作感受野计算RFi =(RFi+1-1)xsi+Kisi为第i层的步长,Ki为第i层卷积核大小。数据填充图像填充后卷积输出的维度:n:图像大小f:卷积核大小p:填......
  • airflow+k8s 多用户-分布式-跨集群-容器化调度
    对于考虑使用拖拉拽编排使用云原生调度的可以参考​​​https://github.com/tencentmusic/argo-workflow​​全栈工程师开发手册(作者:栾鹏)​架构系列文章最开始采用airflow......
  • 分布式ID生成-雪花算法(Snowflake)
    1描述使用原生Java方式生成雪花算法,雪花算法是推特公司开源的生成唯一ID的算法,性能更高,可以避免对第三方依赖的使用,减少耦合  1)能满足高并发分布式系统环境下I......
  • docker-selenium分布式环境搭建(基于grid框架)
    说明:docker-selenium分布式是基于grid框架进行搭建以下是docker-selenium分布式网络拓扑图:  从图中可以看出:      1)docker-selenium可以用作浏览器兼容......
  • Redis实现分布式锁
    Redis实现分布式锁前言分布式锁的实现有三种方式数据库乐观锁基于Redis的分布式锁基于Zookeeper的分布式锁分布式锁满足的条件为了确保分布式锁可用,我们至少要保......
  • 浅谈分布式环境下WebSocket消息共享问题
    浅谈分布式环境下WebSocket消息共享问题技术分析我们在开发时会遇到需要使用即时通讯的场景,当然,实现方式很多,Socket、MQTT、Netty....等等。具体用哪种就在于业务的需求......
  • CosineWarmup理论与代码实战
    摘要:CosineWarmup是一种非常实用的训练策略,本次教程将带领大家实现该训练策略。教程将从理论和代码实战两个方面进行。本文分享自华为云社区《CosineWarmup理论介绍与代码......
  • 数组理论基础
    数组理论基础数组是存放在连续内存空间上的相同类型数据的集合。数组下标都是从0开始的。数组的元素是不能删的,只能覆盖。Java的二维数组的每一行头结点的地址是没有......
  • 数据仓库建模理论及实践-从0到1
    1.数据仓库的概念数据仓库是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据,借助数据仓库的分析能力,企业可从数据中获得宝贵的信息......