什么是分布式事务?
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 或者,在换一句话说,分布式事务 = n 个本地事务。通过事务管理器...
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 或者,在换一句话说,分布式事务 = n 个本地事务。通过事务管理器...
什么是事务消息?如何实现? 什么是事务消息?如何实现? 关于事务消息的概念和原理,胖友可以看看官方对这块的解答,即 《RocketMQ 4.3 正式发布,支持分布式事务》 的 「四 事务消息」 小节。 艿艿 16 年的时候,基于 RocketMQ 早期的版本,写了 《RocketMQ 源码分析 —— 事务消息》 文章,虽然 RocketMQ 版本不太一样,但是大体的思路是差不多的,可以...
这个问题,严格来说不属于【分布式事务】相关,考虑到本文已经出现了一阶段提交、二阶段提交,所以这里就瞬时“硬塞”一个三阶段提交。 感兴趣的胖友,可以看看 《数据库 分布式事务 2阶提交 3阶提交》 文章。 事务解决方案的对比总结 总的来说,TCC 和 MQ 都是以服务为范围进行分布式事务的处理,而 XA、BED、SAGA 则是以数据库为范围进行分布式处理。 对于数据库中间来来说,更趋向...
什么是BASE理论 由于不能同时满足CAP,所以出现了BASE理论:BA:Basically Available,表示基本可用,表示可以允许一定程度的不可用,比如由于系统故障,请求时间变长,或者由于系统故障导致部分非核心功能不可用,都是允许的。S:Soft state:表示分布式系统可以处于一种中间状态,比如数据正在同步E:Eventually consistent,表示最终一致性,不要求...
什么是 Spring Cloud ? 什么是 Spring Cloud ? 什么是 Spring Cloud ? Spring Cloud 核心功能是什么? Spring Cloud 有哪些组件? Spring Cloud 和 Spring Boot 的区别和关系? Spring Cloud 和 Dubbo 的区别? ...
什么是 Redis 分区? 这个问题,和 「Redis 集群都有哪些方案?」 是同类问题。 简单看看即可,重点还是去理解 Redis Cluster 集群方案。 🦅 关于如下四个问题,直接看 《Redis 分区》 文章。 Redis 分区是什么? 分区的优势? 分区的不足? 分区类型? 可能有胖友会懵逼,又是 Redis 主从复制,又是 Redis 分区,又是 ...
什么是 Redis 事务? 和众多其它数据库一样,Redis 作为 NoSQL 数据库也同样提供了事务机制。在 Redis 中,MULTI / EXEC / DISCARD / WATCH 这四个命令是我们实现事务的基石。相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便如此,我们还是会简要的列出 Redis 中事务的实现特征: 1、在事务中的所有命令都将会被串行化的顺序执行...
什么是 Redis Pipelining ? 一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应。这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。 注意,Redis Pipelining 是 Redis Client 实现的功能,而不是 Redis Server 提供的特性。假设我们有 3 个请求进行下举例子。 未使用 Pipeline 时...
什么是 Redis ? Redis ,全称 Remote Dictionary Server ,是一个基于内存的高性能 Key-Value 数据库。Redis 已经成为互联网公司在缓存组件选择的唯一。例如说,在各种公有云上,缓存服务都是提供的 Redis。再例如说,招聘简历要求上,都会要求掌握 Redis 。
什么是 Netty 空闲检测? 在 Netty 中,提供了 IdleStateHandler 类,正如其名,空闲状态处理器,用于检测连接的读写是否处于空闲状态。如果是,则会触发 IdleStateEvent 。 IdleStateHandler 目前提供三种类型的心跳检测,通过构造方法来设置。代码如下: // IdleStateHandler.javapublic IdleStateH...