![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
JustinNeil
年少是你未醒的梦话,风华是燃尽的彼岸花
展开
-
分布式锁解决并发的三种实现方式
分布式锁解决并发的三种实现方式为什么要使用分布式锁分布式锁需要具备哪些条件分布式锁的三种实现方式基于数据库实现分布式锁使用Redis实现分布式锁选用Redis实现分布式锁的好处使用命令介绍实现思想基于Zookeeper实现分布式锁实现步骤优点缺点总结为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用多线程进行处理,并且可以完美的运行,毫无Bug...原创 2019-08-06 10:56:18 · 572 阅读 · 0 评论 -
无状态登录
无状态登录什么是有状态?什么是无状态如何实现无状态什么是有状态? 有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如Tomcat中的Session。例如登录:用户登录后,我们把用户的信息保存在服务端Session中,并且给用户一个Cookie值,记录对应的session,然后下次请求,用户携带cookie值来(这一步由浏览器自动完成...原创 2019-08-13 14:40:38 · 1380 阅读 · 0 评论 -
分布式系统经典基础理论
分布式系统经典基础理论分布式系统设计理念分布式系统的目标与要素分布式系统设计两大思路中心化设计去中心化分布式与集群的区别分布式系统设计理念分布式系统架构的第一原则是不要分布!这句话看似矛盾,但实则揭示了分布式系统的很多特征。分布式系统的目标与要素分布式系统的目标是提升系统整体性能和吞吐量另外还要尽量保证分布式系统的容错性。即使采用了分布式系统,我们也要尽力运用并发编程,高性能网络框架等等...原创 2019-08-08 19:41:44 · 305 阅读 · 1 评论 -
CAP
CAP概述一致性可用性分区容忍性权衡概述 分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容忍性(P:Partition Tolerance),最多只能同时满足其中两项。一致性 一致性指的是多个数据副本是否能保持一致的特性,在一致性的条件下,系统在执行数据更新操作之后能够从一致性状态转移到另一个一致性状态。对系统的一个数据更新成...原创 2019-08-14 16:29:44 · 357 阅读 · 0 评论 -
Paxos协议
Paxos协议概念执行过程Prepare 阶段Accept 阶段Learn 阶段约束条件正确性可终止性概念 用于达成共识性问题,即对多个节点产生的值,该算法能保证只选出唯一一个值。主要有三类节点:提议者(Proposer):提议一个值;接受者(Acceptor):对每个提议进行投票;告知者(Learner):被告知投票的结果,不参与投票过程。执行过程 规定一个提议包含两个字段...原创 2019-08-14 18:26:54 · 293 阅读 · 0 评论 -
BASE
BASE概述基本可用软状态最终一致性概述 BASE 是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)三个短语的缩写。 BASE 理论是对 CAP 中一致性和可用性权衡的结果,它的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。基本可用...原创 2019-08-14 18:57:01 · 177 阅读 · 0 评论 -
Raft协议
Raft单个 Candidate 的竞选多个 Candidate 竞选数据同步Raft 也是分布式一致性协议,主要是用来竞选主节点。单个 Candidate 的竞选 有三种节点:Follower、Candidate 和 Leader。Leader 会周期性的发送心跳包给 Follower。每个 Follower 都设置了一个随机的竞选超时时间,一般为 150ms~300ms,如果在这个时间...原创 2019-08-15 08:25:20 · 183 阅读 · 0 评论 -
分布式锁
分布式锁数据库的唯一索引Redis 的 SETNX 指令Redis 的 RedLock 算法Zookeeper 的有序节点 在单机场景下,可以使用语言的内置锁来实现进程同步。但是在分布式场景下,需要同步的进程可能位于不同的节点上,那么就需要使用分布式锁。阻塞锁通常使用互斥量来实现:互斥量为 0 表示有其它进程在使用锁,此时处于锁定状态;互斥量为 1 表示未锁定状态。1 和 0 可以用...原创 2019-08-16 08:51:38 · 119 阅读 · 0 评论 -
分布式事务
分布式事务2PC运行过程准备阶段提交阶段存在的问题同步阻塞单点问题数据不一致太过保守本地消息表 指事务的操作位于不同的节点上,需要保证事务的 ACID 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。2PC 两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务...原创 2019-08-16 09:34:47 · 115 阅读 · 0 评论