摘要:
很多人会直接只用@Async来执行异步操作。但是这里面有一个问题,如果都是用spring的默认实现,是有坑的。 当我们开启 EnableAsync注解 就可以使用@Async注解来执行异步操作了。 我们现在通过EnableAsync注解去打开spring异步世界的坑。 走JDK的动态代理: 最终走到 阅读全文
摘要:
分布式事务(1)-理论基础 分布式事务(2) 强一致性分布式事务解决方案 分布式事务(3) 强一致性分布式事务Atomikos实战 分布式事务(4) 最终一致性方案之TCC 可靠消息最终一致性是解决分布式事务中一种典型的柔性方案。通常有两种实现方式,一种是基于本地消息表,一种是基于RocketMQ的 阅读全文
摘要:
分布式事务(1)-理论基础 分布式事务(2) 强一致性分布式事务解决方案 分布式事务(3) 强一致性分布式事务Atomikos实战 强一致性分布式事务解决方案要求参与事务的各个节点的数据时刻保持一致,在高并发场景下,系统的性能可能收到影响。而最终一致性方案并不要求数据时刻一致,允许其存在中间状态,只 阅读全文
摘要:
分布式事务(1)-理论基础 分布式事务(2) 强一致性分布式事务解决方案 分布式事务(4) 最终一致性方案之TCC 前面介绍强一致性分布式解决方案,这里用Atomikos框架写一个实战的demo。模拟下单扣减库存的操作。 使用Atomikos,mybatis-plus框架搭建项目,springboo 阅读全文
摘要:
分布式事务(1)-理论基础 分布式事务(3) 强一致性分布式事务Atomikos实战 分布式事务(4) 最终一致性方案之TCC 强一致事务要求在任意时刻各节点数据在任意时刻都是一致的。强一致事务的解决方案主要有DTP模型(全局事务模型)、2PC、3PC。 强一致性数据一致性较高,但是存在性能问题,在 阅读全文
摘要:
分布式事务(2) 强一致性分布式事务解决方案 分布式事务(3) 强一致性分布式事务Atomikos实战 分布式事务(4) 最终一致性方案之TCC 一、服务架构演进 1.单体应用: 最初的所有业务全部融合在一起,我们最初接触到的一个java应用开发完成之后打成一个war包进行部署。 优点: 1)架构简 阅读全文
摘要:
之前有说到mysql事务隔离级别和锁,mysql事务隔离级别有:读未提交,读已提交,可重复读,串行化。 可重复读,当开启事务之后,在此次事务中读到的数据都不会变化(除开新增的数据(可重复读隔离级别不能解决幻读)),为什么可重复读隔离级别能做到这样呢,这就不得不提mysql的MVCC(Multi-Ve 阅读全文
摘要:
一、为什么要搭建主从架构呢 1.数据安全,可以进行数据的备份。 2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据库访问的压力 3.故障转移(高可用),当主节点宕机之后,将从服务切换为主节点继续提供服务。当然要实现主从切换还需要其他中间 阅读全文
摘要:
1.数据库的锁 从性能上分为乐观锁和悲观锁:乐观锁是利用版本号,比如数据字段新增一个版本号字段,操作的时候进行版本的比对,需要开发者自己实现;悲观锁就是在操作数据时,认为此操作会出现数据冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作,这点跟java中的synchronized很相似 阅读全文