分布式
文章平均质量分 92
白夜的Alice
这个作者很懒,什么都没留下…
展开
-
Paxos & raft & zab理论
Paxos是一种基于消息传递的分布式一致性算法。 有以下几种角色: Client(客户):Client 向分布式系统发出请求,并等待响应。。例如浏览器 Propser(提案者):接受提倡客户端的请求,试图说服 Acceptor 同意它,并在发生冲突时充当协调者以推动协议向前发展。 Accpetor(Voter,接受者):投票的接受者,只有在形成法定人数(Quorum,一般即为majority多数派)时,提议才会最终被接受。 Learner(学习者):学习者充当协议的复制者。一旦接受者同意客户端请求,学习者可原创 2022-06-18 17:57:06 · 457 阅读 · 0 评论 -
流量控制理论与Sentinel
适用:漏桶策略适用于间隔性突发流量且流量不用即时处理的场景 代表框架:Sentinel 中的匀速排队限流策略,分布式追踪系统 Jaeger 中采集策略为速率限制类型。有一个固定容量的水桶,桶底有一个小洞,水桶可以接收任意速率的水流,但无论水桶里有多少水,水从小洞流出的速率始终不变,桶里的水满了之后,水就会溢出。 优点:平滑流量,做到了流量整形,即无论流量多大,即便是突发的大流量,输出依旧是一个稳定的流量。 缺点:对于突发流量的情况,因为服务器处理速度与正常流量的处理速度一致,会丢弃比较多的请求。适用:有突原创 2022-06-14 17:17:57 · 350 阅读 · 0 评论 -
Dubbo部分高级特性
Failover Cluster:失败重试 失败自动切换:当我们在调用Dubbo服务时出现失败,容错策略会重试其它服务器 。一般用于幂等性操作,可以通过配置retries="?"设置重试次数。 Failfast Cluster:快速失败 当服务消费方调用服务提供者失败后,立即报错,也就是只调用一次。通常用于非幂等性的写操作。 Failsafe Cluster:安全失败 当服务消费者调用服务出现异常时,直接忽略异常。通常用于写入日志等操作。 Failback Cluster:失败自动恢复 服务消费端调用服务出原创 2022-06-14 15:34:15 · 303 阅读 · 0 评论 -
分布式锁实现方案
创建一个分布式锁表,加锁后,我们就在表增加一条记录,释放锁即把该数据删掉。缺陷:SETNX(SET If Not Exists):当且仅当 Key 不存在时,则可以设置,否则不做任何动作。 SETEX:可以设置超时时间 其原理为:通过 SETNX 设置 Key-Value 来获得锁,随即进入死循环,每次循环判断,如果存在 Key 则继续循环,如果不存在 Key,则跳出循环,当前任务执行完成后,删除 Key 以释放锁。key : 设置为要锁的资源标识 value: 设置为加锁的线程id ,防止锁被其他线程误释原创 2022-06-10 09:21:16 · 280 阅读 · 0 评论 -
分布式事务解决方案
两阶段协议将分布式事务分为两部分:准备阶段和提交阶段,包含两种角色:事务管理器(协调者 可以理解为jvm或网站等发起者)和资源管理器(参与者 可以理解为数据库),准备和提交阶段均由事务管理器发起。图片来源事务提交: 事务回滚: 如图所示,第一阶段事务管理器向各个数据库发送预提交请求询问其是否满足执行事务的条件,如果满足条件资源管理器则发出就绪回复并锁定资源(执行事务),这个阶段做了除提交事务外的所有事情。 如果所有资源管理器都满足执行条件(执行成功),则事务管理器发出提交命令。 如果存在资源管理器不满足条原创 2022-06-09 23:43:32 · 239 阅读 · 0 评论