微服务场景下的数据一致性解决方案 - 殷湘和平统一 微服务场景下的数据一致性解决方案 殷湘 华为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
康彬-基于微服务的混合云和同城双活实践php 技术栈向 java 技术栈的无缝转 型,从私有云向混合云的进化,及新一代的同城双活技 术架构的研发与落地工作 信用成长成就品质生活 • 大促的痛及混合云实践 • 单元化&双活的应用场景 • 同城双活的探索之路 • 未来的规划 大促的痛及混合云实践 业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 …… mq管理系统 job管理系统 中台服务层 核心交易平台 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 job发布 job调度 配置中心 mq管理系统 调用链路 系统 监控告警 系统 发布系统 服务注册 中心 服务治理 系统 api-gateway 获客 授信 下单 还款 大促的痛 机器准备周期长,紧急 情况无法应对 大促后机器闲置率高,资 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 安全防护 自建IDC 云IDC0 码力 | 47 页 | 6.09 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 较低 较高 运维复杂度 低 高 Huawei Confidential 4 微服务架构的第一大问题——如何拆分微服务? •影响因素 >团队大小 >交付周期 >业务方向 >故障范围 >现有数据规模 >吞吐量 >一致性 >…… Huawei Confidential 5 拆分不好,可能带来的问题 •拆分不好,可能带来的问题 >服务数量爆炸,运维复杂 DDD聚合 • 事件源Event Sourcing • 命令查询责任分离CQRS 现有做法 业务改造 投入大 + 应用上云 + IaaS 应用微服务改造 + PaaS 业务创新 如AI 拆表 拆界面及业务逻辑 微服务化改造典型流程 挑战:强业务相关, 必须业务+微服务专 家介入,投入大、时 间长; 关键技术:应用微服 务化改造工具套件 根据sql、日志、代码实现微服务拆分,并修改相关代码。 微服务拆分工具 单体应用 单体数据库 微服务数据库 A库 B库 服务A 服务B 步骤1:通过SQL的关联程 度、使用次数等,识别出 相关性最高的表划分成一 个微服务 微服务数据库 A库 B库 服务A 服务B 步骤2:通过表结构调整, 将不同的数据库进行解耦, 防止一个微服务跨库访问 (反范式、服务重构等) 微服务数据库 A库 B库 服务A 服务B 步骤3:大表水平拆分,实 现水平扩展,提升访问速度0 码力 | 14 页 | 1.54 MB | 1 年前3
Apache ServiceComb 开源微服务社区有代码库读写 权限 决策子项目需 求和方向 负责整体孵化项目决 策及投票 提议Committer候选 人及孵化器候选项目 管理与监督基金会商 务与日常事务 IPMC Apache软件基金会 LC3大会 正式开源 2017.06 2017.11 2018.10 捐赠给Apache 进入孵化器 成为Apache 顶级项目 首个Apache微服务顶级项目 提供一站式的微服务开源解决方案,致力于帮助企业、用户和开发 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 19 年Apache ServiceComb新品发布 电子印章 报表 电子凭证 工作流 标准存储 数据交换 …… 财政微应用 预算 编制 指标 管理 …… 财务微应用 会计 核算 项目 库 …… 统一基础 数据规范 统一财政 业务数据 标准存储 统一应用 支撑平台 总账结构 统一纵向 层级交换 机制 统一信息 安全体系 软件开发服务 ServiceStage 大数据服务 系统集成服务 IaaS(计算、存储、网络、安全)0 码力 | 15 页 | 2.86 MB | 1 年前3
2-4-禚娴静-微服务你玩得起吗有⼀一堆环境修改需求,运维⼈人 员出错机会增加,运维效率极 低。 2 缺乏有效监控 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 试⼈人员⽆无法拿到新的版本,交 付延期 4 团队出现冲突,架构腐化严重 交付不能完成导致各⾓角⾊色间的 冲突越来越严重,为了快速上 些是不 够的 ful API Restful API ⾃自动 化部署 特性 团队 1 环境⼿手⼯工维护,频频出错 2 缺乏有效监控 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 试⼈人员⽆无法拿到新的版本,交 付延期 4 团队出现冲突,架构腐化严重 交付不能完成导致各⾓角⾊色间的 冲突越来越严重,为了快速上 实施了新的部署流程,成功率 ⼤大⼤大提⾼高,部署时间缩短到 30分钟。 2 ⾼高效监控 服务提供状态汇报,利⽤用 Splunk聚合⽇日志,对服务运 ⾏行状态进⾏行监控,⼤大⼤大提⾼高运 维效率。 2.DevOps⼀一家亲 2012 2015 环境⼿手⼯工维护,频频出错 缺乏有效监控 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测0 码力 | 51 页 | 8.18 MB | 1 年前3
华为企业级PaaS 微服务应用微服务架构模式 ServiceComb实践 案例 Agenda servicecomb.apache.org github.com/apache?q=servicecomb 面向开发者的数据中心演进 数据中心服务器虚拟化: Google,亚马逊等公司 以资源为中心: • AWS EC2,S3,Route53 • OpenStack • CloudStack • 混合云 以应用为中心: 调用链 立体监控 方法追踪 事务洞察 微服务治理 负载均衡 限流/降级 熔断/容错 错误注入 黑白名单 微服务管理 注册中心 配置中心 治理中心 全局事务 契约管理 监控大屏 智能分析 环境管理 开发环境 测试环境 预验证环境 灰度环境 生产环境 商业生态(aPaaS/SaaS) 行业 (政府、教育、医疗、零售、……) 伙伴 (软通、中软、幸宜、博思、医 ARM CCI 虚机 CCE servicecomb.apache.org github.com/apache?q=servicecomb 围绕应用构建平台功能 • 操作的起点为应用 • 数据库,缓存服务,容器平台等围绕应用创建 应用 RDS DDM DMS DCS CCE ECS ELB 监控 软件中心 流水线 servicecomb.apache.org github0 码力 | 17 页 | 3.42 MB | 1 年前3
走进开源 - Apache ServiceComb决策子项目 需求和方向 负责整体孵化项 目决策及投票 提议Committer 候选人及孵化器 候选项目 管理与监督基金会 商务与日常事务 • 涉猎领域 人工智能AI IoT 大数据 金融管理 区块链 …… • 未涉猎领域 机器人 自动驾驶 星际探索 也有可能是你的项目 • 注册在美国的非盈利组织 • 提供法律和基础设施的支持 • 找个项目做贡献成为Committer [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb LC3大会 正式开源 2017.11 捐赠给Apache 进入孵化器 成为Apache 顶级项目 华为开始实践 微服务 获中国信通信院 开源创新项目奖 尖峰开源人物奖 首个行业微服务标准 的核心参考框架 中国优秀开源项目 一等奖 2012 2017.6 2018.10 2018.3 2019.1 信通院《开源产业白皮书》: 安全合规业界领先, 成国内三成企业首选 2019.7 2019.8 发布5大 创新项目 2019.10 2019.4 首次接受企业 捐赠的项目 招贤纳士 壮大社区 未来 成为国际化标准、 权威评测认证… 遵循Apache Way,中立、开发、标准、无商业Lock-in、社区健康发展0 码力 | 28 页 | 1.92 MB | 1 年前3
Apache 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
张波-虎牙直播在微服务改造中的实践虎牙基础保障部中间件团队负责人 2019.8.11 Service Mesh Meetup #6 广州站 微服务改造事项 DNS-F在数据 库场景的落地 名字服务在负 载均衡场景的 落地 DNS-F在微服 务场景的落地 应用层探活 数据库故障 恢复时间长 服务故障牵 引慢,流量 接入生效时 间长 DNS生效慢 内部服务无 就近接入能 力 服务性能下 降流量不摘 除 实 接 入 能 力 异 常 摘 除 能 力 dmx dns-f app nacos M S write read DNS-F在数据库场景的落地 背景 在数据库服务切换时效率低,依赖 业务方修改配置,时效不确定,通 常需要10分钟以上; 目标 数据库切换秒级生效; 技术特点-DNS-F M S S S M1.mysql S1.mysql S2.mysql S3.mysql 近接入能力,内部服务调用无法实现就近访问。 目标 DNS解析成功率 100% 公共DNS分钟级生效 内部DNS秒级生效 基于IP+CMDB实现就近访问能力 11 dns当前现状 1、依赖公共localDNS,解析不稳定,延迟大 落地效果 12 平均解析时间 之前200ms+ 现在1ms以下 缓存命中率 之前92% 现在99.8%+ 解析失败率 之前0.1% 现在0% 应用探活场景下的落地 1、web专区的nginx有健康检查的功能,0 码力 | 27 页 | 1.03 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 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













