prontera/spring-cloud-rest-tcc:基于Spring Cloud Netflix展示TCC思想的分布式事务解决方案
prontera/spring - cloud - rest - tcc项目聚焦于随着业务和架构变动带来的进程间一致性需求增加的问题,以Spring Cloud Netflix为服务治理基础,结合C4Model展示基于TCC思想的分...
标签:Github项目C4Model prontera/spring-cloud-rest-tcc SpringCloudNetflix TCC 分布式事务【Github】项目名:prontera/spring – cloud – rest – tcc:基于Spring Cloud Netflix展示TCC思想的分布式事务解决方案
项目简介
随着业务发展和组织架构变动,系统析构拆分后进程间一致性需求增加。本项目以Spring Cloud Netflix作为服务治理基础,贯穿C4Model,展示如何用TCC解决分布式事务。文中提出TCC的变体TCD,阐述了其在模型、流程、原则方面的理念,如将HTTP语义下沉到请求体等。同时给出了一个购入PS4涉及多服务的场景示例,还介绍了项目的技术栈、前置条件、部署演示以及可能出现的事务冲突情况处理等内容。
项目核心技术
主要技术包括Java 8、Spring Boot 2.x、Spring Cloud Netflix – Hoxton、MySQL 8.0。利用Spring Cloud Netflix进行服务治理,基于TCC思想(以及变体TCD)处理分布式事务。在项目中,采用MySQL进行数据存储,通过在Java环境下的编码实现各个服务功能以及事务协调等相关逻辑。
项目实践案例
假设有购入PS4的场景,涉及Order、Account和Product服务,分别对应生单、扣减余额和扣减库存过程。在这个过程中可能会遇到网络故障等问题暴露矛盾。例如在演示中,以Customer角色通过Order服务的Swagger面板下单,在Try阶段根据Participant响应时间设计资源预留时长,考虑各种耗时因素。人为模拟confirm阶段的超时情况,如用账户scott下单时无法扣减余额,购买gba时无法扣减库存,在出现conflict终态时可通过diagnose接口定位问题。
项目总结
该项目详细地阐述了基于Spring Cloud Netflix和TCC思想解决分布式事务的方案,包括理论、变体以及实践。对于想要深入了解分布式事务处理的开发者来说是一个很好的学习案例。如果大家对项目中的编码风格或者设计思路等有任何想法或者建议,欢迎在GitHub Issue留言讨论。
项目地址
数据统计
数据评估
本站链氪巴士提供的prontera/spring-cloud-rest-tcc:基于Spring Cloud Netflix展示TCC思想的分布式事务解决方案都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。
相关导航
GitHub - OpenGithubs/github - weekly - rank是一个很有价值的项目,每周一早上8点更新。它列出了GitHub上每周飙升榜top20的开源项目,如Avaiga/taipy项目适合多种开发者快速构建数据驱动的Web应用,ollama - webui/ollama - webui是Ollama的Web客户端,payloadcms/payload是“无头”CMS系统等。这些项目来自不同的开发领域,这个排名能让开发者快速掌握热门开源项目动态,也有助于开源爱好者发现新的有趣项目。