 微服务场景下的数据一致性解决方案 - 殷湘和平统一 微服务场景下的数据一致性解决方案 殷湘 华为PaaS微服务架构师 开源能力中心 大纲 •离 数据一致性的起因 •合 数据一致性的解决方案 •断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证 A B C commit rollback 微服务场景 MySQL MongoDB MongoDB Cassandra 数据一致性无法完全通过数据库保证 离 独立进程 独立部署 独立技术 独立团队 合 数据一致性的解决方案 T1 T2 T3 C2 C1 • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Saga transact transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度 剥离业务与数据一致性复杂度 和平:低侵入 让运维监控更加简单 可视化事务、调用链 统一:集中式 无状态、可集群、可分片 Event Sourcing架构 高可用 系统架构 – 基于图形 requests0 码力 | 31 页 | 4.28 MB | 1 年前3 微服务场景下的数据一致性解决方案 - 殷湘和平统一 微服务场景下的数据一致性解决方案 殷湘 华为PaaS微服务架构师 开源能力中心 大纲 •离 数据一致性的起因 •合 数据一致性的解决方案 •断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证 A B C commit rollback 微服务场景 MySQL MongoDB MongoDB Cassandra 数据一致性无法完全通过数据库保证 离 独立进程 独立部署 独立技术 独立团队 合 数据一致性的解决方案 T1 T2 T3 C2 C1 • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Saga transact transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度 剥离业务与数据一致性复杂度 和平:低侵入 让运维监控更加简单 可视化事务、调用链 统一:集中式 无状态、可集群、可分片 Event Sourcing架构 高可用 系统架构 – 基于图形 requests0 码力 | 31 页 | 4.28 MB | 1 年前3
 微服务的设计原则与⽣态系统 - 王磊化需要。旧的交付⽅方式阻碍了了组织的发展, ⽽而我们也因此正在丧失竞争⼒力力。 O’Reilly Software Architecture Conference 2017.4 https://www.continuousdelivery.com/ • 缩短交付周期 • 降低发布⻛风险 • 质量量内嵌 组织协同 环境管理理 数据管理理 松耦合架构 反馈验证 持续集成/部署 内建质量量 微服务架构的核⼼心 • 微服务架构设计原则 • 微服务架构⽣生态系统 It is about architecture, BUT not only architecture…… 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” 没有完美的架构,只有适合的架构 • Velocity • Scalability • Availability Availability • Agility • Operation-ability • Complexity • Performance • Testability 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” • 业务领域模型(Domain) • 通⽤用语⾔言(Ubiquitous language) • 界限上下⽂文(Bundle0 码力 | 62 页 | 6.65 MB | 1 年前3 微服务的设计原则与⽣态系统 - 王磊化需要。旧的交付⽅方式阻碍了了组织的发展, ⽽而我们也因此正在丧失竞争⼒力力。 O’Reilly Software Architecture Conference 2017.4 https://www.continuousdelivery.com/ • 缩短交付周期 • 降低发布⻛风险 • 质量量内嵌 组织协同 环境管理理 数据管理理 松耦合架构 反馈验证 持续集成/部署 内建质量量 微服务架构的核⼼心 • 微服务架构设计原则 • 微服务架构⽣生态系统 It is about architecture, BUT not only architecture…… 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” 没有完美的架构,只有适合的架构 • Velocity • Scalability • Availability Availability • Agility • Operation-ability • Complexity • Performance • Testability 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” • 业务领域模型(Domain) • 通⽤用语⾔言(Ubiquitous language) • 界限上下⽂文(Bundle0 码力 | 62 页 | 6.65 MB | 1 年前3
 Service Mesh在华为公
有云的实践Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 • 2013年,微服务开发平台中的组 件,公司内部某电信业务 • 400多个微服务,800左右实例, 200多个数据中⼼心 Sidecar模式 • 基于容器的分布式系统设计模式 • 容器可以共享存储与⺴⽹网络的能⼒力 应⽤用程序容器 ⽇日志同步⼯工具容器 存储卷 Sidecar优势 • 以容器作为基 使服务可视化 • 使服务更具弹性 Data Plane 即Mesher组件本⾝身,对所有请求进⾏行处 理 • 注册发现服务 • 执⾏行路由策略 • 负载均衡 • 透明TLS传输 • ⽣生成监控数据 Mesher ServiceC Mesher ServiceD Mesher ServiceA Mesher ServiceB Control Plane 可⼈人⼯工介⼊入,为所有运⾏行的Mesher 处理链中提供分布式调⽤用追踪 • Admin API 提供了路由查询,健 康检查,Metric等信息 • 使⽤用Collector Registry模型,并 使⽤用Channel主动上报Metric数据 • Promethues,Grafana,Zipkin 对接 Updates Runtime Metrics Metric Collector Registry Prometheus0 码力 | 52 页 | 4.37 MB | 1 年前3 Service Mesh在华为公
有云的实践Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 • 2013年,微服务开发平台中的组 件,公司内部某电信业务 • 400多个微服务,800左右实例, 200多个数据中⼼心 Sidecar模式 • 基于容器的分布式系统设计模式 • 容器可以共享存储与⺴⽹网络的能⼒力 应⽤用程序容器 ⽇日志同步⼯工具容器 存储卷 Sidecar优势 • 以容器作为基 使服务可视化 • 使服务更具弹性 Data Plane 即Mesher组件本⾝身,对所有请求进⾏行处 理 • 注册发现服务 • 执⾏行路由策略 • 负载均衡 • 透明TLS传输 • ⽣生成监控数据 Mesher ServiceC Mesher ServiceD Mesher ServiceA Mesher ServiceB Control Plane 可⼈人⼯工介⼊入,为所有运⾏行的Mesher 处理链中提供分布式调⽤用追踪 • Admin API 提供了路由查询,健 康检查,Metric等信息 • 使⽤用Collector Registry模型,并 使⽤用Channel主动上报Metric数据 • Promethues,Grafana,Zipkin 对接 Updates Runtime Metrics Metric Collector Registry Prometheus0 码力 | 52 页 | 4.37 MB | 1 年前3
 解读Apache为公众利益提供免费的软件。 第⼀个项⽬ 第⼀个项⽬ 世界上使⽤最⼴的服务器 ⾄2019已经成⽴24年 (加⼊ASF 20年) Apache 项⽬涉猎领域 Apache 项⽬涉猎领域 ⼈⼯智能 AI IoT ⼤数据 ⾦融管理 ⽓候变化 Apache项⽬还没有涉猎的领域[Yet] Apache项⽬还没有涉猎的领域[Yet] 机器⼈ ⾃动驾驶 星际探索 区块链 也有可能是你的项⽬ ASF 提供了项⽬的治理 org/foundation/thanks.html 为什么⼤量的项⽬会加⼊Apache 为什么⼤量的项⽬会加⼊Apache 有社会责任感的公司 — 公益贡献 ⾼质量的代码 — 众多的开发者可以从不同⻆度审视代码 合作与竞争 — 竞争对⼿可以通过开源项⽬合作共赢 “免费的”培训 — 通过社区培训新的开发者省时省⼒ 法律保护 — ASF为贡献者提供法律保护 Apache孵化器 Apache孵化器 提供⼀个官⽅进⼊Apache0 码力 | 43 页 | 4.89 MB | 1 年前3 解读Apache为公众利益提供免费的软件。 第⼀个项⽬ 第⼀个项⽬ 世界上使⽤最⼴的服务器 ⾄2019已经成⽴24年 (加⼊ASF 20年) Apache 项⽬涉猎领域 Apache 项⽬涉猎领域 ⼈⼯智能 AI IoT ⼤数据 ⾦融管理 ⽓候变化 Apache项⽬还没有涉猎的领域[Yet] Apache项⽬还没有涉猎的领域[Yet] 机器⼈ ⾃动驾驶 星际探索 区块链 也有可能是你的项⽬ ASF 提供了项⽬的治理 org/foundation/thanks.html 为什么⼤量的项⽬会加⼊Apache 为什么⼤量的项⽬会加⼊Apache 有社会责任感的公司 — 公益贡献 ⾼质量的代码 — 众多的开发者可以从不同⻆度审视代码 合作与竞争 — 竞争对⼿可以通过开源项⽬合作共赢 “免费的”培训 — 通过社区培训新的开发者省时省⼒ 法律保护 — ASF为贡献者提供法律保护 Apache孵化器 Apache孵化器 提供⼀个官⽅进⼊Apache0 码力 | 43 页 | 4.89 MB | 1 年前3
 微服务架构及ServiceComb实践q=servicecomb Demo简介 从一个简单的天气预报微服务应用谈起 • Weathermapweb:界面服务 nodeJS • Fusionweather:汇聚服务,为前台界面提供数据 • Forecast:预报天气 • Weather:当前天气 • http://wyfrs4z7zxumdjp9.zizipo.cn-east- 2.huaweicse.com/#!?city=shenzhen 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 – 微服务的基本组件 组件 • 1个服务(应用+数据库) • 服务注册中心 http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID)0 码力 | 14 页 | 2.04 MB | 1 年前3 微服务架构及ServiceComb实践q=servicecomb Demo简介 从一个简单的天气预报微服务应用谈起 • Weathermapweb:界面服务 nodeJS • Fusionweather:汇聚服务,为前台界面提供数据 • Forecast:预报天气 • Weather:当前天气 • http://wyfrs4z7zxumdjp9.zizipo.cn-east- 2.huaweicse.com/#!?city=shenzhen 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 – 微服务的基本组件 组件 • 1个服务(应用+数据库) • 服务注册中心 http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID)0 码力 | 14 页 | 2.04 MB | 1 年前3
 使用微服务架构快速开发万级TPS高可用电商系统房资格的对应信息(验资,诚意金等) id, customer_id, sale_id, comments 1…..* 接口 内容 customers CRUD qualifications CRUD 数据库 API git clone https://github.com/apache/servciecomb-samples cd servicecomb-samples/houserush/script/docker http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 组件 • 1个服务(应用+数据库) • 服务注册中心 a) https://github.com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例U http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID)0 码力 | 15 页 | 1.46 MB | 1 年前3 使用微服务架构快速开发万级TPS高可用电商系统房资格的对应信息(验资,诚意金等) id, customer_id, sale_id, comments 1…..* 接口 内容 customers CRUD qualifications CRUD 数据库 API git clone https://github.com/apache/servciecomb-samples cd servicecomb-samples/houserush/script/docker http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 组件 • 1个服务(应用+数据库) • 服务注册中心 a) https://github.com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例U http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID)0 码力 | 15 页 | 1.46 MB | 1 年前3
 Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见com/apache?q=servicecomb servicecomb.apache.org 基金会捐赠 • 为什么要进基金会 – 长期开源经验积累 – 更多的开发人员提供高质量的软件 – 合作大于竞争,大家可以共享成果 – 免费的培训,规范的流程 – 基础设施,市场,法律支持 • 开源基金会的选择 – 标准相关的 Linux Foundation – 开发者相关的 Apache Software0 码力 | 18 页 | 3.12 MB | 1 年前3 Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见com/apache?q=servicecomb servicecomb.apache.org 基金会捐赠 • 为什么要进基金会 – 长期开源经验积累 – 更多的开发人员提供高质量的软件 – 合作大于竞争,大家可以共享成果 – 免费的培训,规范的流程 – 基础设施,市场,法律支持 • 开源基金会的选择 – 标准相关的 Linux Foundation – 开发者相关的 Apache Software0 码力 | 18 页 | 3.12 MB | 1 年前3
 NTTDATA 汽车行业数字营销平台微服务化实践及标准化化运营 活动数据,消费者数据,媒体 数据,车联网数据等,全渠道 数据收集追踪,建立数据分析 模型,辅助业务的决策优化 大数据分析 及应用 线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, 实现消费者深度洞察,提高销售线索质量 及转化率,助力经销商销售 新媒体营销数字化布局 从微信营销及小程序开始布局其他新兴媒体渠道,如抖 音,汽车之家等,基于360°消费者画像的精准营销触达。 营销触达数据实时跟踪分析,形成数据闭环 消费者权益及服务数字化布局 建设“一个会员、分众运营、复合模式”的会员体 系以及差异化个性化的会员权益服务体系,打造 “不止于车”的车生活异业联盟生态圈 4 github 以智能化,可持续发展思路,打造车企C2B2C用户体验优化闭环。  可配置适应业务生长,帮助企业更快速、灵活地应对不断变化的市场需求,随时调整业务模式快速配置,以最低成本适应弹性的数据需求。 • 主机厂/经销商、线上/线下线索管 理集中化 • 线索/会员/车主服务集中化 • 数据集中化 集中化 • 用户体验能力标准化 • 外部接口标准化 • 营销能力标准化、营销形式个性化 标准化 • 线索清洗评分智能化、智能分流 •0 码力 | 11 页 | 2.25 MB | 1 年前3 NTTDATA 汽车行业数字营销平台微服务化实践及标准化化运营 活动数据,消费者数据,媒体 数据,车联网数据等,全渠道 数据收集追踪,建立数据分析 模型,辅助业务的决策优化 大数据分析 及应用 线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, 实现消费者深度洞察,提高销售线索质量 及转化率,助力经销商销售 新媒体营销数字化布局 从微信营销及小程序开始布局其他新兴媒体渠道,如抖 音,汽车之家等,基于360°消费者画像的精准营销触达。 营销触达数据实时跟踪分析,形成数据闭环 消费者权益及服务数字化布局 建设“一个会员、分众运营、复合模式”的会员体 系以及差异化个性化的会员权益服务体系,打造 “不止于车”的车生活异业联盟生态圈 4 github 以智能化,可持续发展思路,打造车企C2B2C用户体验优化闭环。  可配置适应业务生长,帮助企业更快速、灵活地应对不断变化的市场需求,随时调整业务模式快速配置,以最低成本适应弹性的数据需求。 • 主机厂/经销商、线上/线下线索管 理集中化 • 线索/会员/车主服务集中化 • 数据集中化 集中化 • 用户体验能力标准化 • 外部接口标准化 • 营销能力标准化、营销形式个性化 标准化 • 线索清洗评分智能化、智能分流 •0 码力 | 11 页 | 2.25 MB | 1 年前3
 康彬-基于微服务的混合云和同城双活实践核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 job发布 job调度 配置中心 mq管理系统 调用链路 系统 监控告警 系统 发布系统 服务注册 中心 服务治理 机器准备周期长,紧急 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 越来越大,怎么破? 单元化&多活的范围 boss 客服系统 销售系统 风控审核 催收系统 政策管理 prod devops 监控系统 调用链路 日志系统 …… oa 人事系统 智能推荐 大数据 AI/BI …… 交易平台 电商 现金 信用卡 会员 桔子理财 风控平台 用户增长 发布系统 故障时,只影响内 部办公相关的公司 经营活动,不影响 用户下单交易 故障时,间接或部分影响用户0 码力 | 47 页 | 6.09 MB | 1 年前3 康彬-基于微服务的混合云和同城双活实践核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 job发布 job调度 配置中心 mq管理系统 调用链路 系统 监控告警 系统 发布系统 服务注册 中心 服务治理 机器准备周期长,紧急 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 越来越大,怎么破? 单元化&多活的范围 boss 客服系统 销售系统 风控审核 催收系统 政策管理 prod devops 监控系统 调用链路 日志系统 …… oa 人事系统 智能推荐 大数据 AI/BI …… 交易平台 电商 现金 信用卡 会员 桔子理财 风控平台 用户增长 发布系统 故障时,只影响内 部办公相关的公司 经营活动,不影响 用户下单交易 故障时,间接或部分影响用户0 码力 | 47 页 | 6.09 MB | 1 年前3
 华为企业级PaaS 微服务应用微服务架构模式 ServiceComb实践 案例 Agenda servicecomb.apache.org github.com/apache?q=servicecomb 面向开发者的数据中心演进 数据中心服务器虚拟化: Google,亚马逊等公司 以资源为中心: • AWS EC2,S3,Route53 • OpenStack • CloudStack • 混合云 以应用为中心: ARM CCI 虚机 CCE servicecomb.apache.org github.com/apache?q=servicecomb 围绕应用构建平台功能 • 操作的起点为应用 • 数据库,缓存服务,容器平台等围绕应用创建 应用 RDS DDM DMS DCS CCE ECS ELB 监控 软件中心 流水线 servicecomb.apache.org github github.com/apache?q=servicecomb 缺少了什么 • 流水线,平台等自动化手段的完备,使得开发人员开始思考业务功能的拆分,复用,使得网络拓扑更加复杂 • 从过去“数据中心网络拓扑几乎没变化”变为“应用发布,应对业务流量,随时随地的网络拓扑变化” • 平台功能解决了应用运行时之前的种种问题,但为了将应用的运行时统一治理,保障业务可靠运行,需要引入微服务框架 来解决分布式系统中的难题0 码力 | 17 页 | 3.42 MB | 1 年前3 华为企业级PaaS 微服务应用微服务架构模式 ServiceComb实践 案例 Agenda servicecomb.apache.org github.com/apache?q=servicecomb 面向开发者的数据中心演进 数据中心服务器虚拟化: Google,亚马逊等公司 以资源为中心: • AWS EC2,S3,Route53 • OpenStack • CloudStack • 混合云 以应用为中心: ARM CCI 虚机 CCE servicecomb.apache.org github.com/apache?q=servicecomb 围绕应用构建平台功能 • 操作的起点为应用 • 数据库,缓存服务,容器平台等围绕应用创建 应用 RDS DDM DMS DCS CCE ECS ELB 监控 软件中心 流水线 servicecomb.apache.org github github.com/apache?q=servicecomb 缺少了什么 • 流水线,平台等自动化手段的完备,使得开发人员开始思考业务功能的拆分,复用,使得网络拓扑更加复杂 • 从过去“数据中心网络拓扑几乎没变化”变为“应用发布,应对业务流量,随时随地的网络拓扑变化” • 平台功能解决了应用运行时之前的种种问题,但为了将应用的运行时统一治理,保障业务可靠运行,需要引入微服务框架 来解决分布式系统中的难题0 码力 | 17 页 | 3.42 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













