聊聊分布式事务
聊聊分布式事务 前言 随着业务的快速发展、业务复杂度越来越高,传统单体应用逐渐暴露出了一些问题,例如开发效率低、可维护性差、架构扩展性差、部署不灵活、健壮性差等等。 微服务架构是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。每个微服务仅关注于完成一件任务并很好地完成该任务。 微服务架构的特点 微服务架构的优势非常明显,在近些年迅猛发展。 将复杂的业务拆分成多个小的业务,能够达到更好的业务复用,有利于人员组织分工 服务独立部署,独立扩容,每个服务的修改和部署对其他服务没有影响 每个服务可以根据业务场景选取合适的编程语言和数据库 微服务有以上的优势,但是微服务也带来不少的新问题,例如: 服务数量众多,其测试、部署、监控等都变的更加困难。 单体应用拆分为分布式系统后,进程间的通讯机制和故障处理措施变的更加复杂 系统微服务化后,原先是一个服务内部的本地数据库事务,被拆到了多个服务,需要在分布式环境下保证事务的一致性 上述的各项问题中,1、2都可以通过近几年涌现的各项微服务技术解决,例如Kubernetes提供了服务发现、服务治理等。 因此分布式事务已经成为微服务落地最大的阻碍,也是最具挑战性的一个技术难题。 CAP 理论 一个分布式系统最多只能同时满足 一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 分布式事务方案 分布式事务模式常见的有XA、TCC、SAGA、可靠消息。 ...