目录1. 死锁问题2. 续命问题3. 主从失效的问题4. lua 脚本做扣减库存5. 使用 redis 分布式做扣减库存6. lua 和分布式的优化7. 并行转串行思路8. redis 和 zk 分布式比较 1. 死锁问题场景: 当用 redis 做分布式时,当 A 用户竞争成功,A 用户所在的主机挂了,这时候还没有来得及释放,那么其他用户去用 setnx 指令去竞争
转载 2023-07-08 19:00:00
171阅读
一、Redis中为什么没有回滚的事务Multi 开启事务 Watch 可以监听一个或者多个key,在提交事务之前是否有发生了变化 如果发生边了变化就不会提交事务,没有发生变化才可以提交事务 版本号码 乐观 EXEC 提交事务 Discard 取消提交事务watch name multi set name xiaoxiao exec注意:Redis官方是没有提供回滚方法, 值提供了取消事务。 Re
转载 2023-10-10 13:48:05
109阅读
 1,柔性事物,二阶段2PC型,补偿型,异步确保型,最大努力通知型。2PC适合场景:客户账,收费异步确保型:会计性,资金订单,通知数据。核心交易数据分库并分表,消费记录数据分库分表,商户交易数据分库分表。        保持多个维度的数据集群可以使用MQ异步同步,MQ异步也会导致数据不一致,则引入实时监控服务,实时计算2个维度集群差异,作一致性同步
转载 2023-08-09 13:12:53
103阅读
面试官:你们是如何解决分布式事务问题的?关于分布式分布式系统在现在的系统中越来越常见,而分布式事物问题是是分布式系统种最常见的问题之一分布式事物剖析分布式事务的实现主要有以下 5 种方案:XA 方案TCC 方案本地消息表可靠消息最终一致性方案最大努力通知方案1、两阶段提交方案/XA方案所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问
分布式,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式。setnx 是『SET if Not eXists』(如果不存在,则 SET)的简写。 命令格式:SETNX key value;使用:只
Spring 作为 Java 开发中的基础设施,对于事务也提供了很好的支持,总体上来说,Spring 支持两种类型的事务,声明事务和编程式事务。编程式事务类似于 Jdbc 事务的写法,需要将事务的代码嵌入到业务逻辑中,这样代码的耦合度较高,而声明事务通过 AOP 的思想能够有效的将事务和业务逻辑代码解耦,因此在实际开发中,声明事务得到了广泛的应用,而编程式事务则较少使用,考虑到
转载 2024-04-30 21:36:42
38阅读
一个典型的全局性事务的架构如下,通常来说TM会集成在Application Server(例如weblo。
原创 2023-04-25 16:20:05
71阅读
学习本篇之前,可以先看下文章 什么是分布式,了解下基本概念。之前都是手写一个分布式,其实Spring早就提供了分布式的实现。早期,分布式的相关代码存在于Spring Cloud的子项目Spring Cloud Cluster中,后来被迁移到Spring Integration中。Spring Integration提供的全局,目前为这几种存储提供了实现:Gemfire、JDBC、Redi
转载 2023-10-02 21:43:59
123阅读
分布式 微服务 集群去饭店吃饭就是一个完整的业务,饭店的厨师、配菜师、传菜员、服务员就是分布式;厨师、配菜师、传菜员和服务员都不止一个人,这就是集群;分布式就是微服务的一种表现形式,分布式是部署层面,微服务是设计层面。分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效
转载 2024-05-16 10:21:38
42阅读
一、引言  随着业务量的增加,单机部署已经无法满足日常需求了,我们可能会把代码部署到多台服务器上去来进行服务的扩容,也就是负载均衡,那在这种场景下,怎么能实现的概念呢?  那么我们知道如果是一台主机部署的话,我们有很多方式可以实现的概念,比如利用synchronized关键字实现同步,或者使用reentrantLock可重入来在需要同步的场景,因为内存都是在一台机器上,可以很容易的实现对共享
概述SAGA SAGA是1987 Hector & Kenneth 发表的论文,主要是解决长事务执行的问题。有的系统比较旧同时也需要长事物,不能改造,那么比较适用这种场景处理,还有金融行业比较适合用这种事务,主要也是流程会比较长。 SAGA的执行方式 SAGA是两层执行的,事物按流程T1,T2,,, ...
转载 2021-10-21 21:53:00
202阅读
2评论
记录了事物处理的四个特性
原创 2020-01-05 11:39:41
1357阅读
redis中的事务是一组命令的集合。使用MULTI命令来开启事务,这期间的所有命令都会被放到一个命令队列里,使用EXEC命令来触发事务,将队列中的所有命令执行。127.0.0.1:6379> multi OK 127.0.0.1:6379> lpush nums 1 QUEUED 127.0.0.1:6379> lpush nums 3 QUEUED 127.0.0.1:6379
分布式文章目录分布式一,基于MySQL实现二,基于redis实现2.1 基于`setNx ` 和 ` setEx `实现2.2 redis集群环境的分布
原创 2022-07-29 12:30:15
682阅读
RAC本质还是一个数据库,采用了分布式管理器。DLM作用是协调实例间对资源的竞争访问,而实例内部的竞争和单实例一样。在RAC数据库中一个节点想要修改数据,都需要想DLM发送请求,通过DLM控制授权节点实例间的数据访问,RAC间实例访问粒度是数据块。DLM协调资源使用的功能叫做同步,所有的资源访问都是需要同步。RAC 将分为本地和全局,本地用于本地进程间的并发控制,也就是单实例中的机制。
原创 2011-06-08 22:52:22
2305阅读
1点赞
1评论
概述分布式事务是指事务的参与者、支持事务的服务器、资源管理器以及事务管理器分别位于分布系统的不同节点之上,在两个或多个网络计算机资源上访问并且更新数据,将两个或多个网络计算机的数据进行的多次操作作为一个整体进行处理。如不同银行账户之间的转账。对于在项目中接触到JTA,大部分的原因是因为在项目中需要操作多个数据库,同时,可以保证操作的原子性,保证对多个数据库的操作一致性。一丶问题由来昨日我们庖丁解
数据库事务的四大特性ACID:A(Atomic)原子性:构成事务的所有操作,要么都成功、要么都失败。 C(Consistency)一致性:事务执行前后,数据库的一致性约束没有被破坏。如:转账+-100要保证两边数据正确,如+100正确-100错误,导致了数据错误没达到一致性。 I(Isolation)隔离性:指并发的两个事务执行互不干扰,一个事务不能看到其他事务运行过程的中间状态。 D(Durab
转载 2023-06-27 08:05:59
107阅读
什么是事物?事务就是提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。数据库事务中的四大特性 ACID你是怎么理解的?A:原子性(Atomicity)
原创 2022-05-16 20:47:52
223阅读
一、的作用是为了解决多线程情况下,对于共享资源的访问安全问题。 但是当系统是分布式的时候,本地已经没法锁住所需要的资源,因为本地获取了,其他系统无法得知本地的情况。 分布式,是独立于系统的第一方实现的功能。因而状态可供不同系统获取。二、分布式实现2.1、基于redis实现基于redis实现的分布式是当下比较流行的一种实现方式。 利用redis的set命令,用全路径类名方法名作为ke
转载 2023-10-07 19:43:07
219阅读
下面说一下分布式实现的几种方式:一、数据库悲观 所谓的悲观:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次拿数据的时候都会上锁。这样别人拿数据的时候就要等待直到的释放。这里是采用oracle的 select  ......  where id=1 for update 来实现分布式,建议加上nowait,或者wait 以及 of下面是dem
转载 2024-07-29 23:20:30
92阅读
  • 1
  • 2
  • 3
  • 4
  • 5