• 事务定义

    分布式系统会造成数据一致性问题,由此,产生了分布式事务。分布式事务是指,事务发起者、事务协调者、资源及资源管理器分别位于不同的分布式系统的不同节点上。

    使用事务定义,可以使在跨数据库、跨消息、跨微服务的情况下接入事务。从复杂的事务问题中抽出,更好的实现分布式事务,避免了分布式场景下产生数据不一致的问题,且对已有的业务代码不造成干扰。

    猪齿鱼使用Saga模式进行事务定义。Saga的定义是Long Lived Transaction(LLT,长活事务),长是指跨系统的多次“事务”,其核心理念是避免使用长期持有锁(例如两阶段提交)的长事务,而应将事务切分为一组按序依次提交的短事务。Saga一般由多个外部任务构成,需要通过多次外部系统的消息交互,才能将整体事务从开始迁移到结束状态,这与我们原来常见的在一个数据库的短事务是不一样的。

    Saga采用了BASE(Basic Availability, Soft, Eventual consistency,即基本的可用性,柔性,最终的一致性)事务的方式,也就是走向最终一致性的柔性事务,来避免消耗大量资源的同步、锁定。这与ACID事务,(Atomicity、Consistency、Isolation、Durability,即原子性,一致性,隔离性,持久性),要么一起成功,要么一起失败的方式是不同的。和ACID相比,BASE不能轻易的回滚,只能通过补偿(Compensating)操作达到最终一致性。

    事务定义列表

    事务定义列表的展示字段有:编码、定义的服务、描述。

    事务定义详情

    <<<<<<< Updated upstream:content/docs/user-guide/microservice-development/global-transaction/saga.md

    ======= >>>>>>> Stashed changes:content/docs/user-guide/microservice-development/global-transaction/saga.md - 点击事务定义列表的操作按钮→可查看事务定义的详情。

    更多操作