保证分布式系统数据一致性的6种方案

保证分布式系统数据一致性的6种方案

数据的一致性协议有:

1.  两阶段提交协议  2PC

2.  三阶段提交协议  3PC

3.  RWN协议

4.  raft协议

5.  Paxos协议

 参考下面网址:

     http://chuansong.me/n/286764951149

时间: 2024-10-27 14:09:08

保证分布式系统数据一致性的6种方案的相关文章

转 保证分布式系统数据一致性的6种方案

保证分布式系统数据一致性的6种方案问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A.B.C,需要满足要么同时成功:要么同时失败.A.B.C 可能是多个不同部门开发.部署在不同服务器上的远程服务. 在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受.为了便于讨论问题,先简单介绍下数据一致性的基础理论. 强一致性 当更新操作完成之后,任何多个后续进程或者线程的

保证分布式系统数据一致性的6种方案(转载)

问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A.B.C,需要满足要么同时成功:要么同时失败.A.B.C 可能是多个不同部门开发.部署在不同服务器上的远程服务. 在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受.为了便于讨论问题,先简单介绍下数据一致性的基础理论. 强一致 当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值.这种是

分布式系统数据一致性的6种方案(转)

分布式系统数据一致性的6种方案(转) 编者按:本文由「高可用架构后花园」群讨论整理而成,后花园是一个面向架构师的增值服务,如需了解,请关注「高可用架构」后回复 VIP                                                                                 问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A.B.C,需要满足要

MySQL高可用的几种方案

MySQL的各种高可用方案,大多是基于以下几种基础来部署的: 基于主从复制: 基于Galera协议: 基于NDB引擎: 基于中间件/proxy: 基于共享存储: 基于主机高可用: 在这些可选项中,最常见的就是基于主从复制的方案,其次是基于Galera的方案,我们重点说说这两种方案.其余几种方案在生产上用的并不多,我们只简单说下. 基于主从复制的高可用方案 双节点主从 + keepalived/heartbeat 一般来说,中小型规模的时候,采用这种架构是最省事的.两个节点可以采用简单的一主一从模

搞懂分布式技术16:浅谈分布式锁的几种方案

搞懂分布式技术16:浅谈分布式锁的几种方案 前言 随着互联网技术的不断发展,数据量的不断增加,业务逻辑日趋复杂,在这种背景下,传统的集中式系统已经无法满足我们的业务需求,分布式系统被应用在更多的场景,而在分布式系统中访问共享资源就需要一种互斥机制,来防止彼此之间的互相干扰,以保证一致性,在这种情况下,我们就需要用到分布式锁. 分布式一致性问题 首先我们先来看一个小例子: 假设某商城有一个商品库存剩10个,用户A想要买6个,用户B想要买5个,在理想状态下,用户A先买走了6了,库存减少6个还剩4个,

分布式系统唯一ID的生成方案讨论

在分布式系统下唯一id问题,就是id咋生成?比如分表分库,因为要是一个表分成多个表之后,每个表的id都是从1开始累加自增长,那是不对的.举个例子,一个表拆分为了2张表,每个表的id都从1开始累加,这个肯定有问题了!你的系统就没办法根据表主键来查询了,比如id = 10这个记录,在两个表里都有!所以此时就需要分布式架构下的全局唯一id生成的方案了,保证每个表内的某个id,全局唯一.全局唯一id主要有以下几种方案. 分布式ID的生成方案 1. UUID 算法的核心思想是结合机器的网卡.当地时间.一个

实现接口幂等性的几种方案

抢微信红包的时候我们都知道:一个红包一旦你抢过之后,以后无论你点多少次都是一样的结果.红包会提示你已经抢过此红包,而不会让你再抢一次. 抢红包接口就是一个非常典型的幂等接口,抢一次和抢多次具有一样的效果.类似的接口在我们的开发过程中会有很多,比如在电商的下单过程中: 订单创建接口,第一次调用返回超时了,重试机制一般会再次调用这个接口,此时我们不能因为这个接口被调了两次就创建两个一样的订单: 库存扣减接口,支付接口也是类似的逻辑: 今天的文章就来讲讲什么是接口的幂等性,并介绍几种实现接口幂等性的方

FAQ系列 | 如何保证主从复制数据一致性(转)

导读 MySQL主从复制环境中,如何才能保证主从数据的一致性呢? 关于主从复制 现在常用的MySQL高可用方案,十有八九是基于 MySQL的主从复制(replication)来设计的,包括常规的一主一从.双主模式,或者半同步复制(semi-sync replication). 我们常常把MySQL replication说成是MySQL同步(sync),但事实上这个过程是异步(async)的.大概过程是这样的: 在master上提交事务后,并且写入binlog,返回事务成功标记: 将binlog

生成html的几种方案

方案1: ///   <summary > ///   传入URL返回网页的html代码 ///   </summary > ///   <param   name="Url" >URL </param > ///   <returns > </returns > public   static     string   getUrltoHtml(string   Url) { errorMsg   =   &qu