![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式系统
文章平均质量分 94
星夜孤帆
人之有吾,当应披荆棘,斩鬼熊,成就一番大事
展开
-
分布式事务解决方案
一、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,就是一个大的操作由 N 个小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。比如,存在一个订单的微服务,一个库存的微服务,当订单完成需要同步减少库存,这时候就要在事务上确保完整和一致。二、相关理论2.1 CAP理论一致性(Consistency)在分布式系统完成..原创 2021-10-15 09:56:49 · 307 阅读 · 2 评论 -
Snowflake 算法的思想分析
snowflake 算法,是 twitter 开源的分布式 id ⽣成算法。其核⼼思想就是:使⽤⼀个 64 bit 的 long 型的数字作为全局唯⼀ id,这 64 个 bit 中,其中 1 个bit 是不⽤的,然后⽤其中的 41 bit 作为毫秒数,⽤ 10 bit 作为⼯作机器 id,12 bit 作为序列号。给⼤家举个例⼦吧,⽐如下⾯那个 64 bit 的 long 型数字,⼤家看看上⾯第⼀个部分,是 1 个 bit:0,这个是⽆意义的上⾯第⼆个部分是 41 个 b...原创 2021-08-26 23:46:44 · 268 阅读 · 0 评论 -
分布式事务解决方案之TCC
一、什么是TCC事务TCC是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与Try相反的操作即回滚操作。TM首先发起所有的分支事务的try操作,任何一个分支事务的try操作执行失败,TM将会发起所有分支事务的Cancel操作,若try操作全部成功,TM将会发起所有分支事务的Confirm操作,其中Confirm/原创 2021-08-03 23:27:49 · 1557 阅读 · 0 评论 -
分布式事务解决方案之2PC
一、什么是2PC2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(commit phase),2是指两个阶段,P是指准备阶段,C是指提交阶段。举例:张三和李四好久不见,老友约起聚餐,饭店老板要求先买单,才能出票。这时张三和李四分别抱怨近况不如意,囊中羞涩,都不愿意请客,这时只能AA。只有张三和李四都付款,老板才能出票安排就餐。但由于张三和李四都是铁公鸡,形成了尴尬的一幕:准备阶段:老板要求张三付款,张三付款。老板要求李四付款,李四付款。原创 2021-08-03 09:13:20 · 4029 阅读 · 1 评论 -
分布式事务基础理论
一、CAP理论通过前面的学习,我们了解到了分布式事务的基础概念。与本地事务不同的是,分布式系统之所以叫分布式,是因为提供服务的各个节点分布在不同机器上,相互之间通过网络交互。不能因为有一点网络问题就导致整个系统无法提供服务,网络因素成为了分布式事务的考量标准之一。因此,分布式事务需要更进一步的理论支持,接下来,我们先来学习一下分布式事务的CAP理论。在讲解分布式事务控制解决方案之前需要先学习一些基础理论,通过理论知识指导我们确定分布式事务控制的目标,从而帮助我们理解每个解决方案。原创 2021-08-02 22:52:20 · 192 阅读 · 0 评论 -
本地事务与分布式事务
一、什么是事务什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。明白上述例子,再来看事务的定义:事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。二、 本地事务在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系数据库来控制事务,而数据库通常原创 2021-08-02 21:33:45 · 320 阅读 · 0 评论 -
加锁解决缓存击穿问题
一、加本地锁问题1.1 本地锁分析继上一篇Redis缓存中介绍,我们可以很容易解决缓存穿透(空结果缓存),和缓存雪崩问题(加随机值),对于缓存击穿问题,可以采用加锁的方式,但是,这个锁需要用什么样的锁,怎么来加这个锁,也是非常有讲究的,一不小心就可能导致各种问题。这里我们先测试一下,加本地锁情况下的一些问题。 @Override public Map<String, List<Catelog2Vo>> getCatalogJson() {原创 2021-03-20 15:21:04 · 1538 阅读 · 0 评论 -
分布式基础概念
一、分布式基础概念1.1微服务微服务,拒绝大型单体应用,像以前的应用,把所有的代码页面都写到一个应用里面,这样容易导致一个问题,如果一处代码出现问题,就会导致我们整个应用不可用。所以,我们就希望,把我们的单体应用,基于业务边界进行服务微化和拆分,将一个大的单体应用拆成一个一个小模块,每一个小模块都可以作为一个微服务,这些模块合起来,最终完成一个单体应用,这些各个微服务,它们都是独立部署运行的,如果有一个出现问题,我们希望不会影响其他服务的正常运行。微服务之间也要进行通信,比如我们的订单服务,想要查询原创 2021-03-08 12:04:06 · 258 阅读 · 1 评论 -
从脑裂问题剖析Nacos&Eureka&Zookeeper架构异同
一、Zookepper简介1.1 Zookeeper的主从机制Leader等价于Master,Follower等价于Slaver。集群中的各个节点都会尝试注册为leader节点,其他没有注册成功的则成为follower从节点。这些follower节点通过watcher观察者监控着leader节点:Zookeeper内部通过心跳机制来确定leader的状态,一旦leader节点出现问题,就能很快获悉并迅速通知其他follower节点,这些follower节点得知消息之后将及时采取相关操作。原创 2020-11-08 15:57:47 · 4833 阅读 · 2 评论 -
CAP理论
一、CAP理论CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能原创 2020-11-08 14:17:03 · 496 阅读 · 0 评论