华为云分布式事务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
消费者云CSE微服务实践 有些业务场景对微服务调用安全要求较高,需要微服务框架支持 SSL传输、API鉴权和认证等 对于一些敏感信息,例如用户账号、金额等,在记录日志等落盘 和采集时需要做脱敏处理、资源占用要合理 敏感运维操作,需要记录安全日志,例如服务上线和下线、服务 的流控阈值修改等 微服务框架技术选型-服务治理能力 服务框架丌能只单单解决分布式RPC调用、服务注册&发现和路 高性能幵发设计:线程绑定技术,网络I/O线程 绑定后端的服务调度线程,最大限度减少锁竞 争。采用连接池机制,重用已有的连接 CSE在消费者云业务的实践-分布式事务 1、服务化乊前本地事务: 2、服务化乊后引入分布式事务: 解决方案:CSE提供数据最终一致性方案-Saga CSE在消费者云业务的实践-服务治理能力 为什么需要服务治理: 随着业务的发展,服务越来越多,如何协调线上运行的各个0 码力 | 22 页 | 1.39 MB | 1 年前3
微服务架构及ServiceComb实践关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订单系统对性能有较高要求,所以可以考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb-Pack: 动态配置 c) 配置历史保留 d) 配置回滚 社区召集! e) 灰度发布配置 社区召集! • 认证鉴权 a) 认证 b) 鉴权 • Toolkit a) 契约 b) 脚手架 • 分布式日志 https://github.com/apache?utf8=%E2%9C%93&q=servicecomb&type=&language= [社区网站] http://servicecomb Login-db Redis Redis Gateway Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache0 码力 | 14 页 | 2.04 MB | 1 年前3
Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见流降级, 容错熔断等服务治理功能 • Service Center 基于Etcd高性能,高可用服务注册中心 • Pack (Saga) 微服务事务最终一致性问题解决方案,提供一个集中式的事务协调器,协调微 服务之间的事务调用,保证事务最终一致性 https://github.com/apache?q=servicecomb 4 github.com/apache?q=servicecomb gMVC/JAX- RS) Golang 编程 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信协议 (Rest&RP C) 边缘服务 熔断/容错 Token认证 Saga事务一致性 服务契约 平滑上云 拥抱开源生态 处理链 微服务脚手架 服务安全 治理UI 自动部署 监控运维 Public Cloud …… SpringClou d SpringBoot 异步编程模型支持 ZipkinV2版本支持 Service Center Java Chassis 1.0.0-m2 提升etcd弹性伸缩 边缘服务网关优化 支持文件流上传下载 用户自定义访问日志 Service Center Java Chassis 1.0.0 正式稳定版本发布 自动生成脚手架工程 支持Http2协议 自定义ping机制 Saga 0.1.0 分布式Pack原型0 码力 | 18 页 | 3.12 MB | 1 年前3
ServiceComb 的前世今生服务发现 熔断 负载均衡 配置 跟踪 … 运行模型 还远远不止这些… 部署/启 动 日志/监 控 告警 诊断 治理/配 置 扩容 缩容 回滚 停止/卸 载 微服务运维生命周期 管理 创建 编码 编译 构建 部署 测试 验收 Java语言 服务契约 & OpenAPI SpringMVC JAX-RS RPC编程 REST通讯 XX通讯插件 RPC通讯 TCC XX事务 强事务 多语言 多编程框架 多通信协议 多事务一致性 Java 微服务 Go 微服务 XX语言 微服务 Spring微 服务 遗留 应用 微服务云服务: https://servicestage0 码力 | 16 页 | 1.45 MB | 1 年前3
华为企业级PaaS 微服务应用部署/卸载 启动/停止 升级/回滚 灰度发布 弹性伸缩 微服务运维 应用告警 日志分析 全链路拓扑 SQL分析 调用链 立体监控 方法追踪 事务洞察 微服务治理 负载均衡 限流/降级 熔断/容错 错误注入 黑白名单 微服务管理 注册中心 配置中心 治理中心 全局事务 契约管理 监控大屏 智能分析 环境管理 开发环境 测试环境 预验证环境 灰度环境0 码力 | 17 页 | 3.42 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
共 32 条
- 1
- 2
- 3
- 4













