摘要: 分布式事务之三阶段提交 三阶段提交(3PC)是二阶段提交(2PC)的改进版本,三阶段提交协议主要是为了解决两阶段提交协议的阻塞问题,2pc存在的问题是当协调者崩溃时,参与者不能做出最后的选择。因此参与者可能在协调者恢复之前保持阻塞。三阶段提交(Three-phase commit),是二阶段提交(2PC)的改进版本。 三阶 阅读全文
posted @ 2021-11-18 17:34 晨煦风清 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 分布式事务之两阶段提交 前面的文章中,我们介绍了分布式系统中的CAP理论和BASE理论,本文会就分布式事务的实现方案之一:两阶段提交(2PC)进行介绍。2PC是一个非常经典的强一致、中心化的原子提交协议。中心化是指协议中有两类节点:一个是中心化协调者节点(coordinator)和N个参与者节点(partcipant)。 阅读全文
posted @ 2021-11-18 16:28 晨煦风清 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 什么是协程 协程(Coroutine)一种电脑程序组件,该程序组件通过允许暂停和恢复任务,为非抢占式多任务生成子程序。协程也可以简单理解为协作的程序,通过协同多任务处理实现并发的函数的变种(一种可以支持中断的函数)。 下面,我们通过日常生活场景为例,对什么是协程进行说明。 假设A某在家每天都要做3件 阅读全文
posted @ 2021-11-18 12:30 晨煦风清 阅读(985) 评论(0) 推荐(1) 编辑
摘要: 分布式事务之事务概念剖析 现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在互联网金融等一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构,随之而来就 阅读全文
posted @ 2021-11-18 10:52 晨煦风清 阅读(36) 评论(0) 推荐(0) 编辑
摘要:  深入剖析RocketMQ 之消息存储模块 一、简介 RocketMQ 是阿里巴巴开源的分布式消息中间件,它借鉴了 Kafka 实现,支持消息订阅与发布、顺序消息、事务消息、定时消息、消息回溯、死信队列等功能。RocketMQ 架构上主要分为四部分,如下图所示: Producer:消息生产者,支持分布式集群方式部署。 Consumer:消息消 阅读全文
posted @ 2021-11-18 10:47 晨煦风清 阅读(525) 评论(0) 推荐(1) 编辑
摘要: Sentinel流控、熔断解析 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制 阅读全文
posted @ 2021-11-18 10:30 晨煦风清 阅读(485) 评论(0) 推荐(0) 编辑
摘要: Raft 协议分析:集群变更 前两篇文章分别解析了Raft中领导人选举和日志复制规范,对于一个固定的集群来说,有了这些规范的保护,就可以快乐的一致运行下去了。随着业务的变化,总归会出现集群规模变更的需求。最简单的处理方式当然是停掉整个集群服务,变更配置,重启服务。有时候,这对于在线业务是无法接受的。如果不停止服务,直接变更又存在 阅读全文
posted @ 2021-11-18 09:02 晨煦风清 阅读(309) 评论(1) 推荐(0) 编辑