
分布式
文章平均质量分 54
养-乐多
这个作者很懒,什么都没留下…
展开
-
什么是分布式系统?
什么是分布式事务1、什么是分布式系统?部署在不同结点上的系统通过网络交互来完成协同工作的系统。比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完成。2、什么是事务?事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consis...原创 2018-10-23 00:01:30 · 345 阅读 · 0 评论 -
分布式事务详解
所谓分布式事务,这个概念就不再多说了,下面就来总结下几种解决方案吧!一、基于本地消息表总的方案就是在生产者方增加一个生产日志表,并记录未完成状态,然后生产者方开启一个定时任务,并调用消费方提供的接口,等待消费方返回状态。如果成功,则更新日志表为成功,否则为失败。定时任务如此往复,直到日志表的状态为成功或者业务定义为失败时结束。但使用本方案有个最大的问题,就是数据库性能太差,不利于大数据量的存储。二、基于消息队列(MQ)MQ的处理量毋庸置疑,当然并非所有的MQ都支持,这里以阿里巴巴出品的Rocke原创 2020-10-29 16:21:31 · 242 阅读 · 0 评论 -
数据库和缓存一致性问题
一般来说我们的业务场景是把Redis作为缓存来用,而把关系型数据库作为持久化来用,那么当数据修改时就存在数据一致性的问题。而解决这种一致性问题主要有两种模式:双写模式和失效模式。双写模式从上图可知,由于服务器存在网络分区问题(网络闪断、服务性能差异、CPU、内存等各种因素),存在写缓存不一致形成了短暂的脏数据。另外,可能存在更新逻辑比较复杂,如果再用复杂的逻辑去更新缓存得不偿失,因此在这种情况下双写模式并不是很合适。失效模式此模式相比复杂修改时要好一些,但同样存在缓存不一致的情况。原创 2021-04-01 16:37:02 · 316 阅读 · 0 评论 -
分布式锁之Redisson
1. 读写锁(ReadWriteLock)读写锁的特点是一定能保证读取到最新的数据,可以认为是强一致性。接下来看下几种模式情况下,其结果如何:读 + 读:是一个共享锁,并发可读,会一一记录所有的读操作。读 + 写:存在读锁,写操作必须等读操作完成后才能写。写 + 读:存在写锁,读操作必须等写操作完成后才能读,读到的是最新的数据。写 + 写:存在写锁,阻塞后面的写操作,必须等上一个写操作完成后才能写。总结:写锁是一个排它锁(互斥锁、独享锁),而读锁是共享锁所有的读操作都可以同时进行。...原创 2021-03-29 23:21:26 · 346 阅读 · 0 评论