公司官网
一、项目价值
公司的对外门面,是外部客户与合作伙伴对公司的第一印象。
二、项目亮点
1.需要较高的前端开发和美化的能力。
2.实现整个官网内容一站式维护(CMS系统)。
3.自动识别用户环境实现多语言,并且能够根据不同语言展示不同的排版风格(并非简单翻译)。
Apache/incubator-seata(简称Seata)是一款开源的分布式事务解决方案,由阿里巴巴和蚂蚁金服共同贡献并捐献给Apache基金会。它致力于在微服务架构下提供高性能、易用且无侵入的分布式事务管理服务。
一、解决的问题
Seata主要解决微服务架构下的分布式事务一致性问题。在单体应用拆分为多个微服务后,跨服务的数据操作可能涉及多个独立的数据库或远程调用,传统单机事务无法保障全局一致性。例如,订单支付后需同时更新订单状态、扣减库存和增加积分,若任一环节失败需保证所有操作回滚。Seata通过统一的全局事务协调机制,确保跨服务的业务操作要么全部成功,要么全部回滚。
二、核心技术
1. 事务模式支持
AT模式(自动补偿事务):基于两阶段提交(2PC)的改进,通过代理JDBC数据源,在业务SQL执行时自动生成回滚日志(before image和after image)。一阶段提交本地事务并释放锁,二阶段异步清理日志(提交)或反向补偿(回滚),无需业务代码侵入。
TCC模式(补偿型事务):要求业务实现Try(资源预留)、Confirm(提交)、Cancel(回滚)三个接口,通过业务逻辑的显式控制实现事务一致性,适用于高性能场景。Saga模式(长事务补偿):通过正向操作与逆向补偿的组合处理长流程事务,适合需要异步或长时间执行的业务场景。
XA模式:兼容传统XA协议,依赖数据库的XA支持,适用于强一致性需求但性能要求较低的场景。
2. 架构组件
TC(Transaction Coordinator):独立部署的事务协调器,管理全局事务状态和分支事务调度。
TM(Transaction Manager):定义事务边界(如通过@GlobalTransactional注解),发起全局事务提交或回滚。
RM(Resource Manager):管理本地资源(如数据库连接),向TC注册分支事务并执行提交/回滚指令。
三、核心特点
无侵入性AT模式通过代理数据源和SQL解析自动生成回滚日志,业务代码无需感知分布式事务逻辑,仅需添加注解即可实现全局事务管理。多模式适配支持AT、TCC、Saga和XA四种事务模式,覆盖从简单到复杂、从高性能到强一致性的多样化需求。高性能与低延迟AT模式通过一阶段提交释放本地锁,减少资源占用;二阶段异步处理提升吞吐量。
TCC模式无全局锁,通过业务层资源预留实现高并发。高可用与扩展性TC支持集群部署,可结合Nacos、Zookeeper等注册中心实现高可用。存储模式支持文件、数据库(MySQL等)和Redis,适应不同场景需求。
生态兼容性无缝集成Spring Cloud、Dubbo等主流微服务框架,支持多种数据库(MySQL、PostgreSQL、Oracle等)
四、性能表现
AT模式一阶段本地事务提交后立即释放连接和锁,减少资源争用。二阶段异步清理日志,事务提交效率高,适用于大多数业务场景。测试显示其性能接近本地事务的90%。
TCC模式无全局锁,通过业务逻辑控制资源预留,适合高并发场景(如秒杀)。但需业务实现补偿逻辑,开发成本较高。
Saga模式适用于长流程事务,但补偿逻辑的复杂性可能影响性能,需结合业务设计优化