从百度文件系统看大型分布式系统设计中的定式与创新Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 • 锁和信号量 - Nexus - 分布式锁 - 分布式通知 • 文件系统 - The Baidu File System - 持久化存储 一个典型的数据处理场景 数据处理模块 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 多副本冗余 一致性问题 • 怎么定义写成功 - 3副本成功, 影响可用性 • 可以读从节点 - 刚写入的读不到 - 不一致 • 只允许读主节点 - 扩展性受限 数据处理模块 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 CAP理论 最多支持6万台机器 • 最多支持100亿文件 分布式存储系统设计的特殊性 • 最基础服务的提供者 - 不可能做成无状态的 • 最底层的仲裁者 - 不能依赖ZooKeeper等系统选主 - 分布式的双主问题只从存储系统解决 这些设计给BFS带来哪些优势? HDFS BFS 名字节点 扩展方式 联邦式 分裂的目录树 分布式 统一的目录树 宕机恢复时间 分钟级 秒级 外部依赖0 码力 | 24 页 | 937.45 KB | 1 年前3
 《58到家技术架构快速规划与落地》 - 沈剑监控平台- 最佳实践 � 单维度正常,能说明系统正常吗? � 什么是立体化监控? � 怎么个多维度法? (1)机器、操作系统 (2)进程、端口 (3)日志 (4)接口 58集团技术专场 机器、操作系统监控 58集团技术专场 2. 监控平台-进程/端口/JVM • 两类思路:分发/汇总 • 分发类实现Tips (1)易扩展的配置 (2)远端接口探测,命令执行 (3)可以无需agent (3)cache-client (4)db-client � 改造内容:加两行日志 58集团技术专场 启示:统一组件多么重要 58集团技术专场 3. 调用链跟踪-快速落地实践 � 请求链跨进程标识 � 时序标识 � 深度标识 � 数据收集 � 可视化 58集团技术专场 3. 调用链跟踪-效果 � 58到家调用链跟踪系统 (1)快速定位性能瓶颈 (2)快速发现不合理调用 58集团技术专场 强调:统一组件真的很重要! 58集团技术专场 三、总结 58集团技术专场 总结-初创公司技术体系怎么玩 � 服务化:统一框架,统一数据访问,解耦组件 � 监控平台:机器/操作系统,进程/端口,日志,接口 � 调用链跟踪:修改点,串联/时序/深度,数据收集,可视化 � 守望者平台:应用视角,上下游,数据收集,统一展现 统一组件 快速落地 58集团技术专场 Q&A 谢谢!0 码力 | 42 页 | 1.52 MB | 1 年前3
 唯品会调度系统的前世今生com/vipshop/Saturn 婆媳关系 为何而生 传统调度系统的问题、产品的定 位与选型 需要解决的问题 1 6 4 3 2 … 异构/多语言难以支持 5 缺乏统一监控、统一管理 (进程假死、运行状态未知) 缺乏容错、容灾,高可 用 缺乏分布式处理 无法合理利用机器资源 难以问题追踪 选型对比 Crontab Quartz Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 易于发布与维护 • 框架升级与业务脱离 框架与业务隔离 Shell作业 Java/消息作业 Saturn Executor PHP脚本 Python脚本 System.exec 作业进程 作业进程 JVM Saturn Core System Class Loader Saturn Executor 作业实现 Saturn Core JVM System Class Loader 坑5-高IO导致STW发生 症状表象:不明原因的STW(GC时间都很短,但产生了STW) -XX:+PrintGCApplicationStoppedTime 坑5-高IO导致STW发生 其它进程/线程 JVM 写Perf文件 执行较大量文件IO操作(比如写日志) 进入安全点 执行GC 写GC日志 退出安全点 IO争用(page lock),可导致长时间无法返回!! STW/JVM暂停0 码力 | 58 页 | 5.40 MB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔隔离 实时策略略推送 数据采集 应⽤用管理理 策略略管理理 流控管理理 预案管理理 指标管理理 监控告警 数据⼤大盘 脚本开发 ETCD管理理 故障演练 业务保障管理理后台 应⽤用JVM进程 故障动态注⼊入 Attach 故障注⼊入 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 指标(HBase) 指标明细(ES) 降级⽇日志(ES) Agent 控制指令、参数下发、故障注⼊入 Jetty MGT API ASM / Instrumentation Application JVM 故障画像 • 应⽤用故障:模拟应⽤用进程内故障 • 中间件故障:通过中间件客户端,模拟中间件故障 • 系统故障:通过⼯工具、脚本模拟⽹网络丢包、延时,磁盘不不⾜足故障 故障抽象,提炼统⼀一模型 • 延时模型、超时模型、异常模型、⾃自定义代码模型 故障注⼊入流程 故障演练 管理理后台 应⽤用程序 Agent Listener Agent Redis MySQL ⼆二⽅方服务 1. 发送Agent启动指令 2. Attach⽬目标JVM进程 Core.jar 核⼼心模块初始化 4. 参数下发、故障注⼊入、控制指令 Http通信 5. ⽬目标⽅方法字节码增强 6. MySQL延时模拟 6. Redis超时模拟 6. 服务异常模拟0 码力 | 26 页 | 18.67 MB | 1 年前3
 声明式自愈系统——高可用分布式系统的设计之道-王昕Applications Runtimes Middleware OS Virtualization Storage Networking Data 启动异常 进程被杀 服务器假死 断电 启动异常 超卖 进程死锁 负载均衡失效 业务线程池满 监控错误 流控不合理 心跳异常 缓存热点 缓存限流 数据库热点 数据库宕机 数据库延迟 CPU 抢占 内存抢占 内存错乱 上下文切换0 码力 | 44 页 | 2.47 MB | 1 年前3
 QCon北京2018-《美团配送系统架构演进实践》-阴永俊履约系统与运营系统的边界在哪里 • 履约系统面临的问题 • 如何保证可用性 • 如何保证系统容量 • 如何提升计算能力 • 运营系统面临的问题 • 提升运营系统迭代效率 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) APP运维 多链路 安全框架 管理工作台 HRM 移动办公 招募 IM 物料 薪资 培训 成长 快速起量,系统质量、研发效率问题凸显 合同 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 培训 成长 快速起量,系统质量、研发效率问题凸显 合同 履约系统 • 如何解耦用户侧与骑手侧 • 调度系统如何设计 • 如何实现算法与工程结合 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架)0 码力 | 31 页 | 15.26 MB | 1 年前3
 分布式 KV 存储系统 Cellar 演进之路路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主 • 元数据Zookeeper存储 Cellar—中心节点架构演进 一致性: • 主备强一致 • observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用 • 秒级容灾 无数据迁移 • 节点静默升级 中心节点 A节点 1分片主 2分片备 B节点 1分片备 2分片主 分片1复制 回写增量log 分片2复制 分片2复制 分片1复制 客户端 分片1&2 log Cellar—异地容灾 • 多机房建设 网络延迟大 专线稳定性差0 码力 | 34 页 | 1.66 MB | 1 年前3
 高性能高可用机票实时搜索系统ZK 按 供 应 商 分 表 按 航 线 分 表 报价引擎 — 同步系统⾼高可⽤用 DB主 DB备 Canal 主 Canal 备 DataSync DataSync DataSync DataSync DB主 DB备 DB备 DB主 ZK ZK ⼊入库 Canal 主 Canal 备 报价引擎 — 架构 Search 1 Search 2 Search 30 码力 | 26 页 | 1.94 MB | 1 年前3
 苏宁易购小程序架构实践 苏宁 禹立彬• 基于商品库推荐 2 小程序前端框架 CONTENTS 小程序的前端构成 小程序的业务主要分为,核心购物流 程,活动玩法,辅助页面三类 复用购物流程———同步器 • 主购物流程由于登录,支付,TAB原因,无法插件化 • 微信小程序间跳转策略的变化,使得无法集中在一个小程序上实现购 物流程,只能每个小程序都具备。 • 同步器中包含了最新的购物流程文件包——订单,购物车,商品详情 微信官方后台 运营埋点 • PV UV • 访问链路 • 转化率 3 小程序业务组件 CONTENTS • 使用原生的方式开发,没有使用wepy等框架 • 分包加载,主包原则只放购物主流程 • 尽量压缩业务代码,减少文件大小 • 控制基础库版本,减少对用户的影响 request,登录与302 request,登录与302 在网页状态下运行良好的登录机制,在小程0 码力 | 36 页 | 833.39 KB | 1 年前3
 分布式异地多活架构实践之路老版本兼容服务、运营活动、配置、管 理平台、官网、论坛等 N/A 本地模式 (单点读写) 设计思路 核心业务异地多活 精准流量调度 数据同步 多元化 最终一致性 依赖关系优化 配套系统支撑 主 从 多 主 汇 聚 混 合 场景区分 封装屏蔽细节 容量合理规划 当前总体架构 合肥 北京 广州 HTTPDNS 智能DNS GSLB GSLB Servers Servers Servers0 码力 | 36 页 | 1.66 MB | 1 年前3
共 13 条
- 1
 - 2
 













