高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁构建强⼀一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single0 码力 | 45 页 | 4.63 MB | 1 年前3
超大规模高可用性云端系统构建之禅-蔡超0 码力 | 40 页 | 6.52 MB | 1 年前3
大型Web项目可用性提升 零脚本错误的实战 郭林烁 2017.100 码力 | 62 页 | 7.09 MB | 1 年前3
全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash⟩) Huawei Confidential 5 量子计算的基本原理:纠缠 Particle 1 Particle 2 1 2 ( ↓1 ↓2 + | ↑1⟩| ↑2⟩) 量子计算的并行性 Equals to classical computer operate 2Ntimes Exp: Decry a 400bits integer that used for RSA password,it Analysis…… 量子计算简史 1900-1930年: 量子力学的建 立 1964年: 【Bell不等式】提 出 1981年: Feynman提出 【量子模拟】 1985年: Deutsch阐述 量子图灵机概 念 1996年: Grover提出 量子搜索算 法 1994年:Shor 提 出大数因式分解算 法 1935年:爱因斯坦等提出【EPR 佯谬】 2011年:D- Wave公司研制出 第一款商用量子 在Nature 发文,演示量子优 势 量子力学建立 量子计算理论发展 量子工程 1930 1960 1980 1990 2000 2010 1993年:姚期 智首次证明了 量子图灵机模 型与量子电路 模型的等价性 2019 量子计算物理实现平台 超导 离子阱 硅量子点 金刚石色心 量子计算机遇和挑战 https://cacm.acm.org/magazines/2013/100 码力 | 34 页 | 5.57 MB | 1 年前3
领域驱动设计&中台/用状态机封装领域逻辑答对问题有奖金 金额从2.56元到20.48元 请扫我微信以便当场转账 加微信时烦告知尊姓大名 作用 逻辑内移 都以为自己在做正常的事情, 系统却出问题了 强制封装保护信息完整性 条件语句?泛化?不重要了 作用 帮助定义恰当的责任 专家原则、可视原则 减少get/set 接口变简单 要素 状态 行为由组合决定 复杂就在这里! 状态--表现相同行为的属性值和链接的组合 哪些类值得画状态机 全方位建模的可能性和必要性 核心类 状态多事物(彩色建模)实体责任起点聚合的根 图形界面 质量要求很高的系统,每个类 建模 要点 从类名思考修饰词(形容词) 从行为思考状态变化 从状态属性思考状态名称 优先用原生形容词,防止换汤不换药 有进有出 警戒条件之和必须是完备集(“其他”)且不重叠 吃饱了没?吃饱好干活0 码力 | 30 页 | 1.75 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践scan / flatMap / groupBy 组合 merge / concat / startWith / zip / switch* ⼤大量量强⼤大的操作符 声明式表达 完备、更更⾼高级、更更快捷 requestFlow .buffer(10, MILLISECONDS, 16) .flatMap(service::batchOps) 流 - 业务顺序编写 并发⽅方式执⾏行行 • 不不同的流 • ⽆无依赖 • 切过 Scheduler 就可以⾃自动并发 多流并发 • 业务按照语义顺序编写 • 更更友好的控制并发 维护性 和 性能 更更优! 优雅控制 processors.flatMap(processor -> processor.process(request)) .filter(Result::isSuccess) * 活跃度:RxJava Github Java 排名 No. 2 出现较晚(3年年) Spring 加持,有发展前景 Scala,⽤用户基础 少、普及难度⼤大 稳定性 ? ? ? 普及性 ? ? ? 切换成本 业务框架不不会锁定 :有 Reactive Streams 规范 / 不不同业务框架可互通 后期业务框架切换成本不不⾼高 : 不不同业务框架之间互相模仿 / 使⽤用和概念上差别不不0 码力 | 27 页 | 1.13 MB | 1 年前3
高性能高可用机票实时搜索系统⾼性能⾼可⽤机票实时搜索系统 去哪⼉⺴ 梁启康 议题 系统诉求 海海量量数据 设计思路路 搜索框架 报价引擎 待解问题 系统诉求 • 全⽹网价最低 • 航线报价最全 • 实时性最好 • 产品最丰富 • 预定最流畅 ⾯面临问题 航班舱位时刻变动 供应商规则调整密集 航司政策各有不不同 供应商的office权限不不⼀一致 运价规则变化繁多 GDS数据成本不不菲 报价数量量多,内存问题 • 报价源多,不不稳定 • 响应时间要求苛刻 • 搜索条件有热点 • 缓存报价不不准 • 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新 报价引擎 供应商规则 航司运价 航班舱位状态 套餐搭售 + + 低价特惠 商旅优选 头等舱 。。。 报价引擎—供应商规则 报价引擎 • 计算量量巨⼤大 报价引擎 索引 搜索引擎核⼼心 • 规则库 => 索引库 • 规则库写⼊入量量⼤大,集群峰值达20K TPS • 要求同步延迟很低,不不超过60s • 保持顺序⼀一致性,如果先删后插变成 先插后删,数据会不不⼀一致 • 数据最终⼀一致 • 系统⾼高可⽤用 报价引擎 — 组织索引 北北 京 | 上 海海 成 都 | 杭 州 ⼴广 州 | 郑 州 南0 码力 | 26 页 | 1.94 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 CAP Is Not Simply 2 out of 3 Ø 没有分区时,可用性和一致 性要兼得 Ø 经常要考虑的是可用性和一 致性各有一部分 Ø 根据不同设计应用需求有不 根据不同设计应用需求有不 同的组合 Ø 重要的是系统如何恢复到 “最佳状态” 分区容错性 可 用 性 一 致 性 系 统 服 务 等 级 分区容错性 可 用 性 一 致 性 系 统 自 愈 程 度 Look Distributed System in another Way Safety •Something bad will never happen •e.g. received 控制器执行动作协调到Desired State u 创建1个新的Pod Ø Controller观察特定领域的 系统状态 Ø 协调Desired State跟 Realized State之间的差 距,维持最终一致性 Ø 定期处理集群中的事件 Ø 系统必须是幂等的 控制器的设计理念 控制逻辑应该只依赖于当前状态 假设任何错误的可能,并做容错处理 尽量避免复杂状态机,逻辑不要依赖无法监控的内部状 态 每个模块都可以在必要时优雅地降级服务0 码力 | 44 页 | 2.47 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路KV 存储系统研发 有多年分布式存储研发经验 个人简介 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar,英文原意是酒窖,项目取名Cellar,一方面借用其储藏 之意,同时,也希望使用Cellar的用户,可以像用酒窖藏酒一样,越 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 开源 Tair • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主 • 元数据Zookeeper存储 Cellar—中心节点架构演进 一致性: • 主备强一致 • observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划0 码力 | 34 页 | 1.66 MB | 1 年前3
降级预案在同程艺龙的工程实践-王俊翔⽀支付通知 交易易中台 ⽀支付时限任务 出票处理理 队列列故障 已⽀支付订单被取消 ⽀支付超时 订单取消 缺乏降级设计 稳定性之路路到底有多远 如何设计⾯面向容错的系统,如何提升系统的可⽤用性 强弱依赖 • 弱依赖 - 熔断限流,有损服务 • 强依赖 - 备选服务,降级实现 什什么是强弱依赖,如何确定强弱依赖 • ⽤用户是否强烈烈感知 • 核⼼心业务是否有损 service 降级服务统⼀一注册管理理,通过降 级服务质量量数据从整体反映各应 ⽤用的降级点和可⽤用性保障措施 • 降级策略略集中管理理,通过参数 化、配置化、脚本化⽅方式实现线 上策略略的灵活调整 • 依据服务重要程度,从全局制定 分级预案,对降级点进⾏行行预案编 排,并跟踪监控降级链路路的执⾏行行 • 发现潜在故障,多维度验证预案 有效性,评估系统可靠性,提供 降级策略略、参数调整的优化依据 整体架构 Agent 使⽤用ETCD实现注册中⼼心 • 简单 - Go语⾔言编写部署维护简单,定义良好的API • 安全 - SSL认证机制 • 快速 - ⽀支持上万次写⼊入操作 • 可信 - Raft算法保证强⼀一致性,Proxy反向代理理模式⽀支持 • 服务数据存储 • 应⽤用、服务元数据、状态数据,etcd、mysql双份存储 • 后台实时监控应⽤用、服务,实时变更更降级策略略 proxy 服务质量量数据采集0 码力 | 26 页 | 18.67 MB | 1 年前3
共 35 条
- 1
- 2
- 3
- 4













