微服务场景下的数据一致性解决方案 - 殷湘和平统一 微服务场景下的数据一致性解决方案 殷湘 华为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
华为微服务框架ServiceCombJava/Go 微服务框架 • 提供微服务注册发现以及限流降级,容错熔断等治理功能 • Service Center • 高性能,高可用服务注册中心 • Saga • 微服务数据一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务乊间的事务,保证事务最终一致性 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 微服务数据一致性问题 A B C commit rollback 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 微服务数据一致性问题 A B C 2018 Building Microservice NO0 码力 | 28 页 | 1.53 MB | 1 年前3
美团点评2018技术年货资源上线时 2. 资源上线后 APPKIT打造稳定、灵活、高效的运营配置平台 - 美团技术团队 4.4 监控层 4.4 监控层 APPKIT-SDK运行在业务机器上,这里就涉及到多台机器的数据一致性问题。同时,随着业务接入运营 数据的增多,SDK对机器内存势必有一定消耗。基于服务的稳定性考虑,我们对SDK运行时的投放内容进 行监控,其主要监控两个指标:运营位数及每个运营位的配置总数。这样做可以带来以下几个好处: DBA同学帮忙定位到问题是硬件过旧导致,将机械硬盘 升级成固态硬盘之后报警立马消失了,效果立竿见影! 2. 缓存化 缓存可以称的上是性能优化的利器,使用缓存时需要考虑缓存命中率、缓存更新、数据一致性、缓存穿透 及雪崩、Value过大等问题,可以通过mutiGet将多次请求合并一次、异步访问等方式来提升缓存读取的 性能。 3. 产品逻辑优化 业务逻辑优化经常会容易被忽略,但效果却往往比 ),实际上是一个long型整数,其中数据源大小即表示节点 的顺序,把版本号存入value里面,当两个写入发生冲突的时候只要比较这个版本号的大小即可,版本号 大的覆盖小的,这样能保证写冲突时的数据一致性。 写并发时数据同步过程如下图: 这种同步方式的好处显而易见,可以适用于所有的Redis操作且能保证数据的最终一致性。但这也有一些 弊端,由于多存了版本号导致Redis存储会增加,另外在该机制下两地的数据其实是全量同步的,这对于0 码力 | 229 页 | 61.61 MB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 02. 业务代码与框架代码分离,聚焦业务开发 缓存接入成本低,无需关注内部的管理,开箱即用 提供灵活的查询、过滤、排序、分页等接口,为查询业务赋能 开发者无需关注缓存与数据库的数据一致性,框架层面有保障 框架提供脚手架,框架代码自动生成,减少心智负担 海量数据可扩展,接入冷热数据交换策略,只需简单配置 海量数据存储,不会触发GC扫描,服务性能无压力 单元测试高覆盖,稳定有保障0 码力 | 48 页 | 6.06 MB | 1 年前3
微服务环境下的系统治理与容错架构、组织、流程 微服务架构定义“三步法” 微服务拆分方法 微服务拆分-指导原则 拆服务-单体重构的节奏 服务分解的四大障碍 1、网络延迟 2、同步通信降低了可用性 3、跨服务的数据一致性 4、上帝类 微服务的忠告 n 第一,要记住微服务不是解决所有问题的万能 “银弹”。 n 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。 n 第三,关注微服务0 码力 | 45 页 | 16.09 MB | 1 年前3
ServiceComb 微服务框架是一个使用Go构造的、建立在etcd存储上的高性能、高 可用服务中心。 Java Chassis是一个由编程模型、运行模型、通信模型和服务契约四个 部分组成的微服务框架。 Saga 是一个微服务数据一致性解决方案。 ServiceComb的开放性设计 •Provider与Consumer具有完全 一致的开发体验 •通信模型与编程模型隔离,适 应不同业务场景需求 •运行模型支持灵活扩展,便于0 码力 | 11 页 | 668.81 KB | 1 年前3
华为云分布式事务DTM最佳实践github.com/apache?q=servicecomb servicecomb.apache.org 方案\指标 2PC 传统事务 可靠事件 TCC 柔性事务 SAGA 补偿事务 数据一致性 强一致 最终一致 最终一致 最终一致 总体性能 低 高 取决于实现 取决于实现 业务侵入性 较低侵入 高侵入 高侵入 高侵入 适用广泛性 一般 一般 高 低 产品成熟度 高 高 一般 低0 码力 | 15 页 | 3.10 MB | 1 年前3
从百度文件系统看大型分布式系统设计中的定式与创新- 分布式通知 • 文件系统 - The Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 -0 码力 | 24 页 | 937.45 KB | 1 年前3
Apifox API文档、API调试、API Mock、API自动化测试一体化协作平台压力测试 JMeter API 文档设计 Swagger API 数据Mock Mock.js 测试人员 API 设计者 前端开发 后端开发 存在问题 多系统 数据不互通 数据一致性 困难 效率 低 学习成 本高 无法团 队协作 每次变更,都需要不同角色手动去多套系统 修改,维护一致性非常困难。时间久了,不 一致性越来越严重,最终不可维护。 单机离线使用为主,成员之间无法实0 码力 | 44 页 | 12.45 MB | 1 年前3
5 How to integrate Graph mode into RDBMS smoothly ● 社交网络 目前的问题 01. 副标题 ● 对于复杂的关系网络,传统关系型数据库无能为力 ● 单独部署图数据库集群 ● 部署运维两套数据库集群成本太高 ● 在两个不同的数据库中数据一致性不能保障 探索方向 01. 副标题 TiGraph 项目尝试验证在分布式关系型数据中无缝集成图模式: ● 同时包含关系型模型和图模型 ● 同一个事务中操作图数据和关系型数据的能力 ●0 码力 | 26 页 | 1.14 MB | 1 年前3
共 35 条
- 1
- 2
- 3
- 4













