《微服务架构下的数据一致性方案》由会员分享,可在线阅读,更多相关《微服务架构下的数据一致性方案(19页珍藏版)》请在金锄头文库上搜索。
1、? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Y axis functional decomposition Scale by splitting different things X axis Horizontal duplication Scale by cloning Z axis data partitioning Scale by splitting similar things ? Service A Aggregator Load Balancer DB Service BDB Service CDB Service A Proxy Load
2、 Balancer DB Service B DB Service CDB Service A Load Balancer Service B Service C DB DB DB Service A Load BalancerService B Service C DB DB Service D Queue DBDB Proxy Service A Load Balancer Service B Service C DB DB DB Service D Service A Load Balancer Service B Service C DB DB DB Service D DB ? ?
3、? ? ? ? ? ? ? ? ? ? ? 1.? ? ? ? 2.? ? ? ? 3.? 4.?Seata? ? ? ? ? ? ? ? ? ? ? ? ? ? Seata ?RPC? ? ? ? ?Seata ? ? ? ? AT?TCC?Saga?XA? ? ? ? SEATA Skywalking Shardingsphere Mybatis-Plus Spring Cloud Alibaba 14.7k137 contributor95%70% ? ? ? Business Order DB RM Account DB RM TM TC 1. Begin XID 7. Branch
4、Commit/Rollback 4. Branch Register(Report) Storage DB RM 6. Branch Commit/Rollback 8. Branch Commit/Rollback 5. Global Commit/Rollback/Report 3. Branch Register(Report) 2. Branch Register(Report) ? ? Local TransactionBusiness Table Business Table Business Table TCRM RDBMS that Support ACID Transacti
5、on Branch Rollback Register Branch Report Branch Status Before Local Commit Insert undo_log Local Commit After Local Commit Undo Log Table Branch Commit Branch Rollback Branch Commit Delete Undo Log asynchronously Compensate according to Undo Log Before image Business SQL After image ? ? TCRM Branch
6、 Rollback Register Branch Before Try Try After Try Confirm Cancel Branch Commit DB ? ? StateA StateB StateC Local DB Seata Server End 1. Begin transaction (return xid) 3. Branch register (return branch id) 5. Record state finished 6. Branch report (report branch status) 7. Record statemachine finish
7、ed 8. commit/rollback transaction Start Event Queue 4. Record state started 2. Record statemachine started ? ? Seata? 1. ? 2. Seata-Server ? 3. ?Seata-Server? Seata ? 1. ?timeout 2. ? 3. ? 4. Seata-Server ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MySQL 5.6 ? ? ? ?storage_tbl?order_tbl?account_tbl ? Seata? 1.?+?=? 2.?+?=? 3.? 4.? ? ? ? Dubbo?git clone -b 20200331 :slievrly/fescar- workshop.git Spring Cloud?git clone -b 20200331 :slievrly/spring- cloud-alibaba.git ? ? ? ? ? ? ? ? ?