分布式事务
摘要:参考: 《凤凰架构》,原书 https://icyfenix.cn/ 本节所说的分布式事务(Distributed Transaction)特指多个服务同时访问多个数据源的事务处理机制。 CAP定理(Consistency、Availability、Partition Tolerance Theor
阅读全文
分布式ID
摘要:参考: JavaGuide:《分布式 id》 1、数据库主键自增 优点 :实现起来比较简单、ID 有序递增、存储消耗空间小 缺点 : 支持的并发量不大、存在数据库单点问题(可以使用数据库集群解决,不过增加了复杂度)、ID 没有具体业务含义、安全问题(比如根据订单 ID 的递增规律就能推算出每天的订单
阅读全文
一致性 Hash
摘要:参考: simplezero :一致性hash 概念 一致性hash算法主要应用在分布式缓存系统中,在增加或者删除服务器节点时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系,也就是系统中的大多数历史缓存的存储服务器节点可以不变,解决了普通hash算法带来的动态伸缩性问题。 如上图
阅读全文
服务容错
摘要:参考: 《凤凰架构:服务容错》 @Sup :服务降级 & 熔断机制 容错性设计不能妥协源于分布式系统的本质是不可靠的,一个大的服务集群中,程序可能崩溃、节点可能宕机、网络可能中断,这些“意外情况”其实全部都在“意料之中”。 这里容错策略指的是“面对故障,我们该做些什么” 容错设计模式指的是“要实现某
阅读全文
限流算法
摘要:Token bucket algorithm 令牌桶算法 该算法用具有预定义令牌容量的桶进行类比,这个桶会定期以恒定速率填充令牌。令牌可以被视为某种特定大小的数据包。 因此,每次我们收到请求时,算法都会检查存储桶中的令牌,每个请求应该至少有一个令牌才可以被转发以进一步处理。 令牌桶的算法流程如下:
阅读全文
分布式锁
摘要:参考: java guide:分布式锁常见实现方案总结 小林 coding: 如何用 redis 实现分布式锁的? 在多线程环境中,如果多个线程同时访问共享资源(例如商品库存、外卖订单),会发生数据竞争,可能会导致出现脏数据或者系统问题,威胁到程序的正常运行。 分布式锁是用于分布式环境下并发控制的一
阅读全文
Zookeeper
摘要:参考: java guide : https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html jsongj: http://www.jasongj.co
阅读全文
Gossip 协议
摘要:参考: 凤凰架构:https://icyfenix.cn/distribution/consensus/gossip.html java guide: https://javaguide.cn/distributed-system/protocol/gossip-protocl.html Paxos
阅读全文
Multi Paxos 、Raft 、ZAB 、Quorum 算法
摘要:一、将共识问题分解为三个问题 1.选主 图一 Paxos 算法的"活锁"问题 《https://www.cnblogs.com/suBlog/p/17554677.html》 Basic Paxos 的活锁问题,两个提案节点互不相让地争相提出自己的提案,抢占同一个值的修改权限,导致整个系统在持续性地
阅读全文
Basic Paxos 算法
摘要:参考: 凤凰架构:https://icyfenix.cn/distribution/consensus/paxos.html Paxos 算法将分布式系统中的节点分为三类: 提案节点:称为 Proposer,提出对某个值进行设置操作的节点,设置值这个行为就被称之为提案(Proposal),值一旦设置
阅读全文
CAP & BASE 理论
摘要:参考: java guide : https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html 凤凰架构:https://icyfenix.cn/distribution/consensus/ CAP CAP 定
阅读全文