《Saga分布式事务解决⽅案与实践》演讲者/姜宁
《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T1 T2 T3 C3 正常情况 异常情况 Saga简介 业界Saga的研究应⽤用情况 Caitie McCaffrey https://github.com/aphyr/dist-sagas/blob/master/sagas.pdf Distributed Sagas Chris Richardson http://microservices.io/patterns/data/saga.html Microservice0 码力 | 39 页 | 2.78 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T1 T2 T3 C3 正常情况 异常情况 Saga简介 业界Saga的研究应⽤用情况 Caitie McCaffrey https://github.com/aphyr/dist-sagas/blob/master/sagas.pdf Distributed Sagas Chris Richardson http://microservices.io/patterns/data/saga.html Microservice0 码力 | 33 页 | 2.38 MB | 1 年前3微服务场景下的数据一致性解决方案 - 殷湘
1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx • 已知使用saga的厂商:Microsoft/Twitter/Uber Saga https://www.cs.cornell.edu/andru/ Tn C1 C2 C3 ... Cn T1 T2 T3 ... Tn 正常情况 异常情况 Saga – 最终一致 B C A Saga transact transact transact B C A Saga yes/no yes/no yes/no Saga - 222 • 2种恢复策略 • 向前恢复 • 向后恢复 2 • 2个特点 • 和平 • 重试N次直到成功或采取回退措施 (人工干预) B C A Saga transact transact transact B C A Saga transact 恢复策略 -向后恢复 • 补偿 B C A Saga transact transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度0 码力 | 31 页 | 4.28 MB | 1 年前3ServiceComb雄关漫道
(POJO/Spring MVC/JAX-RS) Golang 编程 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信协议 (Rest&RPC) 边缘服务 熔断/容错 Token认证 Saga事务一致性 服务契约 平滑上云 拥抱开源生态 处理链 微服务脚手架 服务安全 治理UI 自动部署 监控运维 Public Cloud …… SpringCloud SpringBoot Chassis • 高性能的微服务框架,提供服务注册发现以及动态配置管理,以及限流降级,容错熔 断等服务治理功能 • Service Center • 基于Etcd高性能,高可用服务注册中心 • Saga • 微服务事务最终一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务之间的事务调用,保证事务最终一致性 https://github.com/apache?q=incubator-servicecomb 支持通过@span扩展自定义调用追踪 分布式事务一致性问题 A B C commit rollback 分布式事务一致性问题 A B C Saga分布式事务一致性解决方案 Saga Coordinator Saga Saga Saga ID: x Saga Log Saga Started T1 Started T1 Ended T2 Started Transaction Viewer Caller0 码力 | 20 页 | 4.00 MB | 1 年前3华为微服务框架ServiceComb
Java/Go Chassis • Java/Go 微服务框架 • 提供微服务注册发现以及限流降级,容错熔断等治理功能 • Service Center • 高性能,高可用服务注册中心 • Saga • 微服务数据一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务乊间的事务,保证事务最终一致性 2018 Building Microservice NO.1 深圳站: Cloud B C 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 Saga介绍 • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 分布式Saga系统 Saga Coordinator Saga Saga Saga ID: x Saga Log Saga Started T1 Started T1 Ended T2 Started params { T1:[a,b]0 码力 | 28 页 | 1.53 MB | 1 年前3Apache ServiceComb (Incubating) Community Roadmap
Communications protocols (REST & RPC) Edge service Fallbreak and fault tolerance Token authentication Saga transaction consistency Service contract Smooth cloud migration Open-source ecosystems Processing Service Center • A high-performance and high availability service registration center based on ETCD • Saga • A solution to eventual consistency of microservice transactions • Provides a centralized transaction Distributed transaction coordinator C B A Try Cancel Transaction Confirm Try Cancel Confirm Saga TCC ServiceComb Development Roadmap http://www.aleanjourney.com/2016/05/5-steps-for-creating-lean-roadmap0 码力 | 20 页 | 7.95 MB | 1 年前3Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见
Chassis 高性能的微服务框架,提供服务注册发现以及动态配置管理,以及限流降级, 容错熔断等服务治理功能 • Service Center 基于Etcd高性能,高可用服务注册中心 • Pack (Saga) 微服务事务最终一致性问题解决方案,提供一个集中式的事务协调器,协调微 服务之间的事务调用,保证事务最终一致性 https://github.com/apache?q=servicecomb gMVC/JAX- RS) Golang 编程 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信协议 (Rest&RP C) 边缘服务 熔断/容错 Token认证 Saga事务一致性 服务契约 平滑上云 拥抱开源生态 处理链 微服务脚手架 服务安全 治理UI 自动部署 监控运维 Public Cloud …… SpringClou d SpringBoot Chassis 0.4.0 服务中心升级 Service Center Java Chassis 0.5.0 边缘服务 系统Metric 异步调用API Saga 0.0.1 集中式Saga原型 Saga 0.0.2 Saga调用支持条件判断 2017年6月 2017年8月 2017年10月 2017年9月 2017年12月 开发者基本都是华为员工, 邮件列表活跃度 每月10 封,0 码力 | 18 页 | 3.12 MB | 1 年前3ServiceComb介绍
SpringMVC/JAX- RS) Golang 编程 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量量 通信协议 (Rest&RPC) 边缘服务 熔断/容错 Token认证 Saga事务⼀一致性 服务契约 平滑上云 拥抱开源⽣生态 处理理链 微服务脚⼿手架 服务安全 治理理UI ⾃自动部署 监控运维 Public Cloud …… SpringCloud SpringBoot ⾼高性能的微服务框架,提供服务注册发现以及动态配置管理理,以及限流降级,容错熔 断等服务治理理功能 • Service Center • 基于Etcd⾼高性能,⾼高可⽤用服务注册中⼼心 • Saga • 微服务事务最终⼀一致性问题解决⽅方案 • 提供⼀一个集中式的事务协调器器,协调微服务之间的事务调⽤用,保证事务最终⼀一致性 https://github.com/apache?q=i Chassis 0.4.0 服务中⼼心升级 Service Center Java Chassis 0.5.0 边缘服务 系统Metric 异步调⽤用API Saga 0.0.1 集中式Saga原型 Saga 0.0.2 Saga调⽤用⽀支持条件判断 2017年年6⽉月 2017年年8⽉月 2017年年10⽉月 2017年年9⽉月 2017年年12⽉月 ServiceComb 1.0.0-m20 码力 | 16 页 | 877.58 KB | 1 年前3ServiceComb 微服务框架
JWT认证 Saga事务一致性 服务契约 平滑上云 开源生态能力互通 微服务脚手架 云 Dubbo SpringBoot SpringCloud ServiceMesh APM/Tracing生态 Prometheus Zipkin Skywalking Apollo ServiceMesh生态 Istio ServiceComb子系统 Saga 分布式事务解决方案 ServiceCenter 是一个使用Go构造的、建立在etcd存储上的高性能、高 可用服务中心。 Java Chassis是一个由编程模型、运行模型、通信模型和服务契约四个 部分组成的微服务框架。 Saga 是一个微服务数据一致性解决方案。 ServiceComb的开放性设计 •Provider与Consumer具有完全 一致的开发体验 •通信模型与编程模型隔离,适 应不同业务场景需求 •运行模型支持灵活扩展,便于 double bmi = weight / (heightInMeter * heightInMeter); return roundToOnePrecision(bmi); } 特性介绍: Saga 基于Pack模型的新构架 由 Alpha 和 Omega组成 •Alpha充当协调者的角色,主要负责对事务的0 码力 | 11 页 | 668.81 KB | 1 年前3My Participation in ServiceComb - Apache Committer 成长经验分享
2018-10-12 Contents 1. Biography 2. My First Meet with ServiceComb 3. My Contributions to the Saga Project 4. How to Advance Skills in Open-Source Projects 5. Suggestions for Developers Huawei Confidential the Narayana and Blacktie projects as a core developer. Participated in the implementation of the Saga part of Apache ServiceComb and optimized the exception and timeout test scenarios by using tools Confidential 4 My First Meet with ServiceComb • Red Hat Narayana LRA (Long Running Action) • ServiceComb Saga • We need to solve the same problems: l How to manage transactions in microservice-based environments0 码力 | 9 页 | 2.23 MB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4