从百度文件系统看大型分布式系统设计中的定式与创新• 文件系统 - The Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 写入 2. 通知 3. 读取 多副本冗余 一致性问题 • 怎么定义写成功 - 3副本成功, 影响可用性 • 可以读从节点 - 刚写入的读不到 - 不一致 • 只允许读主节点 - 扩展性受限 数据处理模块 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 CAP理论 • 简要历史 - Eric Brewer 1998年提出 - 2002年证明 • 多数情况下我们更重视可用性 - CAD->CD • 一致性与延迟的折衷 - 要求强一致的, 容忍延迟 - 要求低延迟的, 选择最终一致 提升系统扩展性 • 架构的可扩展性 - 拆分元数据节点 - 引入MetaServer 提升系统扩展性 • 设计的可扩展性 - 保证在规模扩大5倍或10倍是正常工作 • BFS避免了过渡设计 - 用设计中的不可扩展达到最大的可扩展 • 最多支持6万台机器0 码力 | 24 页 | 937.45 KB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主 网络延迟大 专线稳定性差 • 异地容灾需求 跨集群数据同步 Cellar—异地容灾 集群节点同步 消息队列同步 复制延迟 低 高 系统复杂度 低 高 运维成本 低 高 实现难度 高 低 扩展性 低 高 • 低延迟 • 低复杂度(运维成本) Cellar—异地容灾 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录0 码力 | 34 页 | 1.66 MB | 1 年前3
陈辉-架构师的业务思维促销玩法 渠道下单 渠道计价 渠道详情页 If else 业务上会有更多类似玩法 If else不能解决本质问题 多平台、多渠道是个趋势 跳出技术思维 多渠道的本质是商品交易体系的扩展性 理解清楚当前需求 具有业务前瞻性 不要过度设计 多渠道 多平台 多用户 模块化 SPI 规则引擎 流程引擎 商品平台化 交易平台化 促销平台化 渠道下单 无结构化商品 多平台玩法 多端适配和开发组件0 码力 | 32 页 | 3.18 MB | 1 年前3
高性能高可用机票实时搜索系统空间换时间 • 缩短对象驻留留内存时间,减少gc次数,优化单机吞吐 • 数据交换采⽤用protobuf + gzip处理理 • jit、预热 回顾 • ⽔水平分层,纵向分渠道,良好的扩展性 • 实时计算 + 阶梯式缓存,成本与报价新鲜度的权衡 • 闭环系统 • 索引库数据同步 • 本地缓存的设计,更更新策略略 • 缩减对象内存 • ⼀一致性哈希负载均衡 ⼼心得0 码力 | 26 页 | 1.94 MB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进截面钢筋 保护层厚度 规格 端头 弯钩 规格 线筋 位置 参考线 参考点 位置 …... 截面钢筋模型总结 7种构件类型的布筋描述建模为同一种模型,增强了模型的表达能 力,提高了可扩展性 UI边界≠模型边界 通过提炼隐含业务规则完善模型 CONTENTS CONTENT 产品介绍 业务挑战及架构目标 架构演进 总结展望 DDD在研发中落地 统一语言 需求实例化 持续集成0 码力 | 33 页 | 1.25 MB | 1 年前3
QCon北京2018-《美团配送系统架构演进实践》-阴永俊服务化 • 原语层+应用层 v3.0 • 借鉴CQRS + MDM思想 • 生产与应用独立建模 快速起量,系统质量、研发效率问题凸显 运营侧应用 • 提供搜索、权限、审批解决方案,保证扩展性 规模化阶段:可用性建设 研发高压线、月度Case复盘、CaseStudy 故障演练 规避能力 解决能力 线上故障处理SOP 上线规范、扩容流程、重构流程、CR流程 周巡检/日巡检制度0 码力 | 31 页 | 15.26 MB | 1 年前3
共 6 条
- 1













