华为云分布式事务DTM最佳实践servicecomb.apache.org github.com/apache?q=servicecomb 华为云分布式事务DTM最佳实践. 王启军 2 github.com/apache?q=servicecomb servicecomb.apache.org 王启军,华为云PaaS团队架构师,负责微服 务框架的开发。曾任当当网架构师,主导电商平台 架构设计;曾就职于搜狐负责手机微博的研发。 Strong 业界常用的一致性分类 5 github.com/apache?q=servicecomb servicecomb.apache.org 方案\指标 2PC 传统事务 可靠事件 TCC 柔性事务 SAGA 补偿事务 数据一致性 强一致 最终一致 最终一致 最终一致 总体性能 低 高 取决于实现 取决于实现 业务侵入性 较低侵入 高侵入 高侵入 高侵入 适用广泛性 一般 一般 高 高 低 产品成熟度 高 高 一般 低 方案对比 6 github.com/apache?q=servicecomb servicecomb.apache.org 分布式事务管理中间件 (Distributed Transaction Management,DTM) 7 github.com/apache?q=servicecomb servicecomb.apache.org DTM总体架构(TCC)0 码力 | 15 页 | 3.10 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • BASE • 基本可⽤用(Basically Available) • 柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T10 码力 | 39 页 | 2.78 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • BASE • 基本可⽤用(Basically Available) • 柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T10 码力 | 33 页 | 2.38 MB | 1 年前3
解读Apacheapache.org/foundation/policies/conduct.html 许可协议是关键 许可协议是关键 起源 — 当代码被创造出来时,需要建⽴许可协议 商标 — 不可以与已经存在的名称有冲突 软件许可 — 现有代码,测试,⽂档需要知识产权的拥有者 需要将软件许可赋予Apache 贡献者协议 — 在Apache的贡献需要遵循贡献者协议: 版权, 专利, 分发/修改 Apache协议 Java Chassis - 具有 MicroServices 管理的⾼性能Java 服 务引擎 服务中⼼ - 基于Etcd的⾼性能服务中⼼ Pack - ⽀持Saga和TCC的Centrical分布式事务协调器 Mesher - 基于Go的服务⽹格实现 Kie - 全新设计的MicroServices配置中⼼ 进⼊Apache的⽅法 进⼊Apache的⽅法 撰写项⽬提案 找到 Champion 从Apache孵化器毕业 完成(或者签署)孵化项⽬状态⽂件中的任务 保证项⽬和产品有合适的名称 展示创建⼀个Apache Release的能⼒ 创建⼀个开放和多样的社区 通过Apache 项⽬成熟模型的检测 http://community.apache.org/apache-way/apache-project-maturity-model.html ⽀持ASF ⽀持ASF ASF由企业,基⾦会和个⼈的免税捐款0 码力 | 43 页 | 4.89 MB | 1 年前3
微服务架构及ServiceComb实践com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例UID---|---物理地址(IP:端口)---| c) 表的维护(心跳存活性检测) • SDK a) https://github.com/apache/servicecomb-java-chassis b) 和服务注册中心通信,共同维护表 • 网关 a) 对外提供固定地址,提供路由转发功能 SDK SDK SDK ServiceA ServiceB ServiceC ServiceD 网关 EdgeService SDK 目标: • 服务与物理地址解耦 • 基本的健康检测 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 3个组件的更多功能 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb-Pack:0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例UID---|---物理地址(IP:端口)---| c) 表的维护(心跳存活性检测) • SDK a) https://github.com/apache/servicecomb-java-chassis b) 和服务注册中心通信,共同维护表 • 网关 a) 对外提供固定地址,提供路由转发功能 SDK …… SDK SDK ServiceA ServiceB ServiceC ServiceD 网关 EdgeService SDK 目标: • 服务与物理地址解耦 • 基本的健康检测 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 – 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb0 码力 | 15 页 | 1.46 MB | 1 年前3
消费者云CSE微服务实践当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式 服务框架要足够轻量级,可以按需加载类库,防止不当前业务的 三方库发生冲突 启停速度要快(秒级弹性伸缩)、资源占用要合理 微服务框架技术选型-微服务安全 有些业务场景对微服务调用安全要求较高,需要微服务框架支持 SSL传输、API鉴权和认证等 高性能幵发设计:线程绑定技术,网络I/O线程 绑定后端的服务调度线程,最大限度减少锁竞 争。采用连接池机制,重用已有的连接 CSE在消费者云业务的实践-分布式事务 1、服务化乊前本地事务: 2、服务化乊后引入分布式事务: 解决方案:CSE提供数据最终一致性方案-Saga CSE在消费者云业务的实践-服务治理能力 为什么需要服务治理: 随着业务的发展,服务越来越多,如何协调线上运行的各个0 码力 | 22 页 | 1.39 MB | 1 年前3
华为微服务框架ServiceComb提供微服务注册发现以及限流降级,容错熔断等治理功能 • Service Center • 高性能,高可用服务注册中心 • Saga • 微服务数据一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务乊间的事务,保证事务最终一致性 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 ServiceComb Chassis架构 & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T1 T2 T3 C3 C2 C1 https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 Saga Pack版本 • Alpha - 族群领袖, Saga 协调器 • Omega – 族群成员, 事务协调代理 Alpha Service A Omega Service B Omega Alpha Alpha 2018 Building Microservice NO0 码力 | 28 页 | 1.53 MB | 1 年前3
ServiceComb雄关漫道(POJO/Spring MVC/JAX-RS) Golang 编程 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信协议 (Rest&RPC) 边缘服务 熔断/容错 Token认证 Saga事务一致性 服务契约 平滑上云 拥抱开源生态 处理链 微服务脚手架 服务安全 治理UI 自动部署 监控运维 Public Cloud …… SpringCloud SpringBoot ,以及限流降级,容错熔 断等服务治理功能 • Service Center • 基于Etcd高性能,高可用服务注册中心 • Saga • 微服务事务最终一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务之间的事务调用,保证事务最终一致性 https://github.com/apache?q=incubator-servicecomb ServiceComb Java Chassis的架构图 线 程 池 分布式服务调用追踪 • 支持标准的分布式调用追踪Zipkin V1,V2 • 支持通过@span扩展自定义调用追踪 分布式事务一致性问题 A B C commit rollback 分布式事务一致性问题 A B C Saga分布式事务一致性解决方案 Saga Coordinator Saga Saga Saga ID: x Saga Log Saga Started0 码力 | 20 页 | 4.00 MB | 1 年前3
ServiceComb 微服务框架JWT认证 Saga事务一致性 服务契约 平滑上云 开源生态能力互通 微服务脚手架 云 Dubbo SpringBoot SpringCloud ServiceMesh APM/Tracing生态 Prometheus Zipkin Skywalking Apollo ServiceMesh生态 Istio ServiceComb子系统 Saga 分布式事务解决方案 服务中心 基于Pack模型的新构架 由 Alpha 和 Omega组成 •Alpha充当协调者的角色,主要负责对事务的 事件进行持久化存储以及协调子事务的状态,使 其最终得以与全局事务的状态保持一致,即保证 事务中的子事务全执行,或全不执行。 •Omega是用户程序侧代理,负责对网络请求 进行拦截并向Alpha上报事务事件,并在异常情 况下根据Alpha下发的指令执行相应的补偿或重 试操作。 Service A0 码力 | 11 页 | 668.81 KB | 1 年前3
共 25 条
- 1
- 2
- 3













