6. 业务数据并发访问控制;
TCC 服务的一阶段 Try 操作预留资源之后,在二阶段操作执行之前,预留的资源都不会被释放;如果此时其他分布式事务修改这些业务资源 , 会出现分布式事务的并发问题;
用户在实现 TCC 服务时,需要考虑业务数据的并发控制,尽量将逻辑锁粒度降到最低,以最大限度的提高分布式事务的并发性;
6 HmilyHmily (How much I love you)
高性能分布式事务 tcc 开源框架 。基于 JAVA 语言来开发(JDK1.8),支持 dubbo,springcloud,motan 等 rpc 框架进行分布式事务 。
框架特性
- 支持嵌套事务 (Nested transaction support).
- 采用 disruptor 框架进行事务日志的异步读写,与 RPC 框架的性能毫无差别 。
- 支持 SpringBoot-starter 项目启动 , 使用简单 。
- RPC 框架支持 : dubbo,motan,springcloud 。
- 本地事务存储支持 : redis,mongodb,zookeeper,file,MySQL 。
- 事务日志序列化支持 :java,hessian,kryo,protostuff 。
- 采用 Aspect AOP 切面思想与 Spring 无缝集成,天然支持集群 。
- 内置经典的分布式事务场景 demo 工程,并有 swagger-ui 可视化界面可以快速体验 。
原理图:
文章插图
流程图:
文章插图
7 参考文献
- https://dromara.org/website/zh-cn/docs/hmily/index.html
- https://houbb.Github.io/2018/10/30/hmily
- https://developer.aliyun.com/article/609854
- https://blog.csdn.NET/bjweimengshu/article/detAIls/86698036
- https://blog.csdn.net/u014296316/article/details/90185589
作者:京东物流 宋乐
来源:京东云开发者社区 自猿其说 Tech 转载请注明来源
【浅谈分布式事务及解决方案】
推荐阅读
- Spring事务超时到底是怎么回事?
- 在Linux服务器上部署容器化的分布式缓存系统
- MySQL 事务死锁问题排查
- 四大事务所是哪四大 会计四大事务所是哪四大
- 数据复制:构建大规模分布式系统的关键组成部分
- 分布式架构和微服务架构的区别
- 分布式锁的三种实现!
- Java与MySQL的并发访问冲突:锁与事务
- 职场求生指南:事务与人际关系,究竟该专攻哪个?
- Spring Boot项目业务代码中使用@Transactional事务失效踩坑点总结