微服务场景下的数据一致性解决方案 - 殷湘
和平统一 微服务场景下的数据一致性解决方案 殷湘 华为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 有对应的补偿 transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度 剥离业务与数据一致性复杂度 和平:低侵入 让运维监控更加简单 可视化事务、调用链 统一:集中式 无状态、可集群、可分片 Event Sourcing架构 高可用 系统架构 – 基于图形 requests { T1:[a,b]0 码力 | 31 页 | 4.28 MB | 1 年前3NTTDATA 汽车行业数字营销平台微服务化实践
及标准化化运营 活动数据,消费者数据,媒体 数据,车联网数据等,全渠道 数据收集追踪,建立数据分析 模型,辅助业务的决策优化 大数据分析 及应用 线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, 实现消费者深度洞察,提高销售线索质量 及转化率,助力经销商销售 新媒体营销数字化布局 从微信营销及小程序开始布局其他新兴媒体渠道,如抖 音,汽车之家等,基于360°消费者画像的精准营销触达。 营销触达数据实时跟踪分析,形成数据闭环 消费者权益及服务数字化布局 建设“一个会员、分众运营、复合模式”的会员体 系以及差异化个性化的会员权益服务体系,打造 “不止于车”的车生活异业联盟生态圈 4 github 以智能化,可持续发展思路,打造车企C2B2C用户体验优化闭环。 可配置适应业务生长,帮助企业更快速、灵活地应对不断变化的市场需求,随时调整业务模式快速配置,以最低成本适应弹性的数据需求。 • 主机厂/经销商、线上/线下线索管 理集中化 • 线索/会员/车主服务集中化 • 数据集中化 集中化 • 用户体验能力标准化 • 外部接口标准化 • 营销能力标准化、营销形式个性化 标准化 • 线索清洗评分智能化、智能分流 •0 码力 | 11 页 | 2.25 MB | 1 年前3Service Mesh的思考及在华为云的实践
Gitter: https://gitter.im/ServiceCombUsers/Lobby Mesher Design Goal • 侵入式与非侵入式可结合使用 • 不绑定基础设施 • 服务可视化 • 高性能,轻量 • 尽最大可能插件化各功能模块 • 透明的产品体验:整合容器平台,微服务引擎,API 网关,指标监控,日志审计等云上服务,封装为微服 务平台,让用户感知不到背后的复杂 Website: ServiceStage API gateway Data Plane 即侵入式框架与非侵入式 mesher • 注册发现 • 执行路由策略 • 负载均衡 • 透明TLS传输 • 生成监控数据 6/30/2018 Mesher ServiceC Java SDK ServiceD Go SDK ServiceA Mesher ServiceB Control plane Consul Eureka Service Discovery Instance Cache Management Service center 基于微服务元数据的路由管理 • 匹配请求者header • 匹配请求者元数据信息 • 按权重引流 • Router使用统一配置模型,支持插件对接不 同生态 6/30/2018 Request 请求特征: • Service Name0 码力 | 29 页 | 1.55 MB | 1 年前3Apache ServiceComb 微服务创新项目解读
使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 Apache ServiceComb [Website] 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件提供商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同实现基于契约(API)的数据、服务标准化管控 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 微服务 运行环 境 验收微服务 基于OpenAPI规范 全新微服务开发 遗留应用微服务化改造 Maven https://github.com/apache?q=servicecomb Syncer是一个多服务中心的同步工具,对应用程序透明。专为大型微服务架构设计,实现不同的微服务技术栈实现的微服 务业务可以进行数据通信,未来可支持跨云的数据通信支持 • 项目地址:https://github.com/apache/servicecomb-service-center/tree/master/syncer Syncer -0 码力 | 13 页 | 1.24 MB | 1 年前3微服务创新新品发布
使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 服务中心异构通信 多语言运行环境 微服务鉴权 微服务契约工具 Apache ServiceComb 面对用户痛点持续创新 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件开发商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同企业遗留系统微服务化快速改造,实现基于契约的数据、服务标准化管控 微服务契约工具 https://github.com/apache/servicecomb-toolkit ServiceComb toolkit 提供契约、代码、文档相互转换和 Syncer Register Instances Discover Serf(Gossip) Syncer Follower Syncer Follower Etcd(raft) 服务实例数据通道 Syncer集群间的消息通 道 Syncer Leader Eureka/Consule /Istio/K8S… Register Instances Discover https://github0 码力 | 12 页 | 2.96 MB | 1 年前3Apache ServiceComb 开源微服务社区
ServiceComb 社区子项目概览 Github入口:https://github.com/apache?q=servicecomb ServiceMesh 服务通信规范 配置 流行微服务框架 可视化监控 分布式追踪 遗留应用转型 全新微服务开发 开发工具 代码自 动生成 契约自 动提取 契约校验 文档自 动生成 微服务脚手架 快速入门 案例代码库 用户手册 社区网站 开源异构微服务兼容 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 19 年Apache ServiceComb新品发布 电子印章 报表 电子凭证 工作流 标准存储 数据交换 …… 财政微应用 预算 编制 指标 管理 …… 财务微应用 会计 核算 项目 库 …… 统一基础 数据规范 统一财政 业务数据 标准存储 统一应用 支撑平台 总账结构 统一纵向 层级交换 机制 统一信息 安全体系 软件开发服务 ServiceStage 大数据服务 系统集成服务 IaaS(计算、存储、网络、安全)0 码力 | 15 页 | 2.86 MB | 1 年前3ServiceCenter - 服务注册中心
负载均衡,服务订阅(客户端LB,长连接) 3. 运行时依赖(Go) 4. 可靠性(BASE,最终一致性) 从服务注册中心到服务管理中心 1. 元数据 2. 依赖关系 3. 实例变化推送 4. 多租隔离 5. 高可用性保障 从服务注册中心到服务管理中心 元数据 1. 应用App,便于微服务可在多个应用间重用 2. 微服务名称,App内唯一 3. 微服务描述信息,让使用者可以快速了解到业务范畴等 Available(基本可用) 2. Soft state(软状态) 3. Eventually consistent(最终一致性) CAP理论:Consistency(一致性), 在分布式系统的各点同时保持数据的一致。 Availability(可用性), 每个请求都能接受到一个响应,无论响应成功戒失败。 Partition tolerance(分区容错性),当出现网络分区故障时系统的容错能力 ServiceCenter在一个时间窗内监听到etcd有80%的实例下线事件,会立即 启劢自我保护机制。即使etcd存储的数据全部丢失,这种极端场景下, SDK与ServiceCenter之间可在不影响业务的前提下,做到数据自劢恢复。 虽然这个恢复是有损的,但在这种灾难场景下还能保持业务基本可用。 怎么实现的? 可视化 可监控 华为 PaaS 微服务开源框架 让云原生开发更简单 微服务引擎商业版:http://www0 码力 | 18 页 | 856.27 KB | 1 年前3微服务架构与领域驱动设计 - 王磊
heart of software �9 微服务架构与领域驱动设计? �10 • 能有效⽀支撑演进式架构 微服务架构与领域驱动设计 �11 随着时间的推移,采⽤用领域驱动设计⽐比采⽤用 以数据中⼼心设计的软件复杂度要低得多。 《Pattern of EEA》 • 能有效降低复杂软件的维护成本 微服务架构与领域驱动设计 �12 微服务架构与领域驱动设计 • 能有效指导服务的设计与划分 • 领域模型的业务逻辑 Application Services • 同应⽤用相关的接⼝口适配 User Interface • ⽤用户接⼝口相关的部分 Infrastructure • 数据相关部分:WebService/DB/File • ⽀支撑相关部分: 环境相关配置 Onion架构 微服务架构与DDD 01 领域驱动设计的核⼼心 02 基于事件⻛风暴暴的DDD实践 03 Efficient: 能快速发现界限上下⽂文以及相关的聚合根等 参与⼈人员:业务⼈人员,领域专家,技术⼈人员,架构师,测试⼈人员等关键⻆角⾊色 开放空间:⾜足够的空间将业务事件流可视化,让⼈人们可以互相讨论 彩⾊色即时贴:使⽤用不不同颜⾊色标识 Alberto Brandolini 如何使⽤用Event Storming 业务流梳理理 寻找事件 寻找命令 寻找聚合 划分⼦子域&界限上下⽂文0 码力 | 28 页 | 1.84 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
• 后续的开发计划 微服务架构 • 微服务架构将⼀一个应⽤用分成多个相互独⽴立的服务。 • 好处是各个服务能够持续独⽴立的开发和部署。 • 难题是服务的数据需要采⽤用什什么样的⽅方式来进⾏行行存储? 多个微服务使⽤用同⼀一数据库 A B C commit rollback ⼀一个典型的微服务架构应⽤用 EdgeService Customer Service Order 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long T T' time • 可交换补偿 T C = T C T 对服务的要求 • 幂等 T = T T … T car rental saga T T' time C 保留留所有事务数据! car rental saga T T' time ACID 与 Saga • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) •0 码力 | 33 页 | 2.38 MB | 1 年前3Service Mesh在华为公 有云的实践
Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 • 2013年,微服务开发平台中的组 件,公司内部某电信业务 • 400多个微服务,800左右实例, 200多个数据中⼼心 Sidecar模式 • 基于容器的分布式系统设计模式 • 容器可以共享存储与⺴⽹网络的能⼒力 应⽤用程序容器 ⽇日志同步⼯工具容器 存储卷 Sidecar优势 • 以容器作为基 Design Goal • 尽可能提供定制化 • 减少对业务影响 • ⾼高性能 • 使服务可视化 • 使服务更具弹性 Data Plane 即Mesher组件本⾝身,对所有请求进⾏行处 理 • 注册发现服务 • 执⾏行路由策略 • 负载均衡 • 透明TLS传输 • ⽣生成监控数据 Mesher ServiceC Mesher ServiceD Mesher ServiceA 处理链中提供分布式调⽤用追踪 • Admin API 提供了路由查询,健 康检查,Metric等信息 • 使⽤用Collector Registry模型,并 使⽤用Channel主动上报Metric数据 • Promethues,Grafana,Zipkin 对接 Updates Runtime Metrics Metric Collector Registry Prometheus0 码力 | 52 页 | 4.37 MB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4