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