个人简介

Echo Blog


江湖无名 安心练剑
  • Compensating Transaction pattern 分布式锁事务
    补偿模式 补偿事务可能无法简单地用系统在操作开始时的状态替换当前状态,因为这种方法可能覆盖应用程序的其他并发实例所做的更改。 相反,它必须是一个考虑到并发实例所做的任何工作的智能流程。 这个过程通常是特定于应用程序的,由原始操作执行的工作的性质驱动。 概念 撤销一系列步骤执行的工作,如果一个或多个步骤失败,这些步骤一起定义一个最终一致的操作。 遵循最终一致性模型的操作通常出现在实...
    2018-09-02 05:27:14 | SQL
  • 3pc Three-Phase Commit 三阶段提交 分布式事务
    3PC 在上文中,我们讲解了二阶段提交协议的设计和实现原理,并明确指出了其在实际运行过程中可能存在的诸如同步阻塞、协调者的单点问题、脑裂和太过保守的容错机制等缺陷,因此研究者在二阶段提交协议的基础上进行了改进,提出了三阶段提交协议。 协议说明 3PC,是Three-Phase Commit的缩写,即三阶段提交,是2PC的改进版,其将二阶段提交协议的“提交事务请求”过程一分为二,形成了由...
    2018-09-02 03:03:38 | SQL
  • SQL 2PC-两阶段提交 SQL 分布式事务两阶段提交协议(2PC)是一种原子承诺协议(ACP)。
    2PC 2PC,是Two-Phase Commit的缩写,即二阶段提交,是计算机网络尤其是在数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务处理过程中能够保持原子性和一致性而设计的一种算法。通常,二阶段提交协议也被认为是一种一致性协议,用来保证分布式系统数据的一致性。 目前,绝大部分的关系型数据库都是采用二阶段提交协议来完成分布式事务处理的,利用该协议能够非常方便地完成所有分...
    2018-09-02 03:03:38 | SQL
  • TCC Try-Confirm-Cancel 分布式事务
    TCC (Try-Confirm-Cancel) 分布式事务 TCC (Try-Confirm-Cancel)。TCC事务机制相对于传统事务机制(X/Open XA),其特征在于它不依赖资源管理器(RM)对XA的支持,而是通过对(由业务系统提供的)业务逻辑的调度来实现分布式事务。 概念 TCC 最早在 《Life beyond Distributed Transactions:an A...
    2018-09-02 02:54:19 | SQL
  • 分布式事务-本地消息表 (经典的ebay模式)
    本地消息表(经典的ebay模式) 该方案的核心思想在于分布式系统在处理任务时通过消息日志的方式来异步执行。 消息日志可以存储至本地文本、数据库或消息队列,然后再通过业务规则定时任务或人工自动重试。 以在线支付系统的跨行转账为例: 第一步 第一步,伪代码如下,对用户id为A的账户扣款1000元,通过本地事务将事务消息(包括本地事务id、支付账户、收款账户、金额、状态等)插入至消息表:...
    2018-09-02 02:54:19 | SQL
  • SQL 分布式事务 distributed transaction 二段提交, 本地消息表, Saga 事务, 最大努力通知
    分布式事务 概念 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。 本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 产生的原因 从本地事务来看,我们可...
    2018-09-02 02:06:45 | SQL
  • Cache Travel-10-05-j2cache Java 两级缓存框架,可以让应用支持两级缓存框架 ehcache(Caffeine) + redis
    手写 Redis 系列 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? java从零手写实现redis(四)添加监听器 java从零手写实现redis(五)过期策略的另一种实现思路 java从零手写实现redis(六)AOF 持久化原...
    2018-09-01 04:24:42 | Cache
  • Cache Travel-10-04-JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用
    手写 Redis 系列 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? java从零手写实现redis(四)添加监听器 java从零手写实现redis(五)过期策略的另一种实现思路 java从零手写实现redis(六)AOF 持久化原...
    2018-09-01 04:24:42 | Cache