解决分布式一致性问题 学习2

  1.保证最终一致性的模式

  查询模式;补偿模式,根据发起行驶分为 自动回复、通知运营、技术运营 形式;一步确保模式;定期校对模式,其中一个关键就是分布式系统需要有一个自始至终唯一的ID,生成ID有两种方法,为 持久型和时间型;

  2.可靠消息模式-- 分为 消息的可靠发送和消息处理的幂等性。

  保证操作的幂等性的常用方法:使用数据库表的唯一键进行滤重,拒绝重复的请求;使用分布式表对请求进行滤重;使用状态流转的方向性来滤重,通常使用数据库的行级锁来实现;根据业务的特点,操作本身就是幂等的,例如,删除一个资源、增加一个资源、获得一个资源等。

  3.缓存一致性模式

  互联网经典做法:如果性能要求不是很高,则尽量使用分布式缓存,而不要使用本地换成。

          写缓存是数据一定要完整,如果缓存数据的一部分有效,另一部分无效,则宁可在需要时回 源数据库,也不要把部分数据放入缓存中。

          使用缓存牺牲了一致性,未来提高性能,数据库与缓存只需要保持弱一致性,而不需要保持强一致性,否则违背了使用缓存的初衷。

          读顺序是先读缓存,后读数据库;写顺序要先写数据库,后写缓存。

  4.微服务的交互模式--同步调用和接口异步调用、消息队列异步处理。

  同步调用适用于大规模、高并发的短小操作,而不适用于后端负载较高的场景,eg,几乎所有JDBC的实现完全适用BIO同步阻塞模式。原则:从业务功能看,尽量使用异步来替换同步;在技术和架构的角度看,能使用同步解决的,不要引入异步。

  

原文地址:https://www.cnblogs.com/holyshengjie/p/8758858.html

时间: 2024-11-05 12:20:21

解决分布式一致性问题 学习2的相关文章

【转载】Paxos以及分布式一致性的学习

开始搜出来这篇文章(link),发现不知所云,先忽略. 然后搜出来这篇文章(link),说是偏向工程实现,建议先看维基(link),但是维基打不开. 所以还是先看知乎的这篇文章吧(https://www.zhihu.com/question/19787937/answer/82340987) Lamport用两段话就描述清楚了它的流程,他老人家也说paxos其实是个简单的算法.但是是我在工程领域见过最为精妙的算法. 分布式一致性是个有趣的领域,而Paxos和类似的协议对这个问题的重要性不喻,在过

《从PAXOS到ZOOKEEPER分布式一致性原理与实践》pdf

下载地址:网盘下载 内容简介  · · · · · · <Paxos到Zookeeper:分布式一致性原理与实践>从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议.同时,本书深入介绍了分布式一致性问题的工业解决方案--ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法.内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper.全书共8章,分为五部分:第一

分布式 一致性Paxos算法(转载)

文章1比较通俗易懂,可以入门,转载地址是http://www.cnblogs.com/linbingdong/p/6253479.html Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不齐.看了很多关于Paxos的资料后发现,学习Paxos最好的资料是论文<Paxos Made Simple>,其次是中.英文版维基百科对Paxos的介绍.本文试图带大家一步步揭开Paxos

[从Paxos到ZooKeeper][分布式一致性原理与实践]&lt;二&gt;一致性协议

Overview 在<一>有介绍到,一个分布式系统的架构设计,往往会在系统的可用性和数据一致性之间进行反复的权衡,于是产生了一系列的一致性协议. 为解决分布式一致性问题,在长期的探索过程中,涌现了一大批经典的一致性协议和算法,其中最著名的就是二阶段提交协议.三阶段提交协议和Paxos算法了. 2PC与3PC 分布式系统中,每个机器节点虽然都能明确知道自己在进行事务操作过程中的结果是失败or成功,但却无法直接获取到其他分布式节点的操作结果. 因此,当一个事务操作需要跨越多个分布式节点的时候,为了

&lt;从PAXOS到ZOOKEEPER分布式一致性原理与实践&gt;读书笔记-两阶段提交与三阶段提交

一.背景 本书第一章的分布式架构,写了从单机的acid到分布式的CAP.参见之前的文章.本篇是第二章的一致性协议部分,分两篇整理. 在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上.为了对用户提供正确的增\删\改\查等语义,我们需要保证这些放置在不同物理机器上的副本是一致的. 为了解决这种分布式一致性问题,有很多经典算法:如二阶段提交.三阶段提交,paxos算法. 二.二阶段提交(2PC) 二阶段提交(Two-phaseC

《从Paxos到Zookeeper:分布式一致性原理与实践》【PDF】下载

内容简介 Paxos到Zookeeper分布式一致性原理与实践从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议.同时,本书深入介绍了分布式一致性问题的工业解决方案--ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法.内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper.全书共8章,分为五部分:前一部分(第1章)主要介绍了计算机系统从集中式向分布式系统

分布式一致性算法2PC和3PC

为了解决分布式一致性问题,产生了不少经典的分布式一致性算法,本文将介绍其中的2PC和3PC.2PC即Two-Phase Commit,译为二阶段提交协议.3PC即Three-Phase Commit,译为三阶段提交协议.? 分布式系统和分布式一致性问题 ? 分布式系统,即运行在多台不同的网络计算机上的软硬件系统,并且仅通过消息传递来进行通信和协调. 分布式一致性问题,即相互独立的节点之间如何就一项决议达成一致的问题.? 2PC ? 2PC,二阶段提交协议,即将事务的提交过程分为两个阶段来进行处理

分布式理论(4):Leases 一种解决分布式缓存一致性的高效容错机制(转)

作者:Cary G.Gray and David R. Cheriton 1989 译者:[email protected] 2011-5-7 出处:http://duanple.blog.163.com/blog/static/70971767201141111440789/ [ 序:所谓租约(leases),其实就是一个合同,即服务端给予客户端在一定期限内可以控制修改操作的权力.如果服务端要修改数据,首先要征求拥有这块数据的租约的客户端的同意,之后才可以修改.客户端从服务端读取数据时往往就同

分布式一致性算法:Raft 算法

Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现.本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的思想.如果对 Paxos 算法感兴趣,可以看我的另一篇文章:分布式系列文章--Paxos算法原理与推导 摘要Raft 是用来管理复制日志(replicated log)的一致性协议.它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同.这使得 Raft 比 Pax