分布式 KV 存储系统 Cellar 演进之路
14 年任职于百度,负责分布式文件系统和 KV 存储系统研发 有多年分布式存储研发经验 个人简介 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar,英文原意是酒窖,项目取名Cellar,一方面借用其储藏 Cellar日请求量达万亿级,美团点评最大NoSQL存储 Cellar起源 Cellar起源—Tair架构 路由表 Cellar起源—Tair架构 HASH Key 桶号 存储节点 固定HASH算 法 固定数目 数据分片 桶->存储节点 对照表 Cellar起源—Tair架构 服务层 请求 mdb 响应 ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进0 码力 | 34 页 | 1.66 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 - 中心化与去中心化 元数据管理 • 去中心化 - P2P技术 - 潜在的一致性问题 - 能管理的元数据有限 • 中心化 - 设计实现简单 - Master节点易成为瓶颈 中心化的解决方案 • Master-Slave模型 - Master是管理者 - Slave是执行者 • 解决Master节点瓶颈 - 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 多副本冗余 一致性问题 • 怎么定义写成功 - 3副本成功, 影响可用性 • 可以读从节点 - 刚写入的读不到 - 不一致 • 只允许读主节点 - 扩展性受限 数据处理模块 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 CAP理论 • 简要历史 - Eric Brewer 多数情况下我们更重视可用性 - CAD->CD • 一致性与延迟的折衷 - 要求强一致的, 容忍延迟 - 要求低延迟的, 选择最终一致 提升系统扩展性 • 架构的可扩展性 - 拆分元数据节点 - 引入MetaServer 提升系统扩展性 • 设计的可扩展性 - 保证在规模扩大5倍或10倍是正常工作 • BFS避免了过渡设计 - 用设计中的不可扩展达到最大的可扩展 • 最多支持6万台机器0 码力 | 24 页 | 937.45 KB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
istio spring-gateway、linkerd、zuul 移动服务C 接入层 服务A 服务B 措施:合冗余[消除链路.裁剪节点] 冗余链路消除40多条 减少系统间交互80多次 裁剪冗余系统节点4个,消除接口200多个 减少对接成本,目的就是快 "� "� before� after before� after C 接入层/GW 服务A 流量 系统容量水位线 不限流 限流 时间 削峰策略[知容量,明底线] 限流 降级 熔断 拒绝服务 异步延迟 多节点参与 开关控制 过载保护 丢车保帅 容量水位线 底线 多节点有序参与 智能DNS,DNS负载均衡 限流(limit,lua),openresty,4层/7层LB 弹性扩容,限流(token),熔断,防刷 监控核心流水线bolts RBAC User Role 策略发生器 异 步 线 程 分 发 分布式队列(报警系统) 合并降级 报警队列 活动监控 活动队列 报警策略 系统异常 基础策略 监控统计 业务节点 业务数据 业务数据统计 监控 数据流 系统统计 经典流式计算架构,流水线策略,线性扩展 高性能监控核心,灵活的监控策略 关键词模式、上下文模式、时间窗口模式等 轻量、高效、稳定,0侵入0 码力 | 42 页 | 19.96 MB | 1 年前3高可用分布式流数据存储设计-李玥
000 ns JournalQ有多快? 32, 961, 776 TPS 测试服务器器:32C/256G/4TB SSD/万兆以太⽹网 测试每条消息⼤大⼩小为:1KB LZ4 压缩 单节点 存储结构设计 0 10 50 55 80 Journal 0 10 50 55 80 Index 0 134217342 268433156 402653853 0 536870912 顺序⼀一致 已提交位置之前的⽇日志具有不不变性。 对于提交的⽇日志,相同位置上Follower的⽇日志和Leader上是⼀一样的。 强⼀一致 如果两个节点上的⽇日志完全相同,并且这些⽇日志都已经被状态机执 ⾏行行,那么这两个节点的状态是相同的。 集群节点数越多性能越好吗? NO 引⼊入Observers 并⾏行行复制-CAS Atomic Hardware Primitives: faa =0 码力 | 36 页 | 6.02 MB | 1 年前3唯品会调度系统的前世今生
CfgCenter 统一鉴权中心 AuthCenter 服务网关 Janus 安全管理平台 Salus 有女初张成 唯品会弹性调度系统的架构与功 能窥探 域 应用包 作业 执行节点 1 1 * 1 * * 创建 Binding 调度器 物理机 1 1 分片 1 * * 领域模型 Ready Running Stopping Stopped 启用 触发(手工 完美兼容现有PHP的作业,可无缝迁移,成本最低 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动 平衡负载 资源利用 • 灵活的运维配置与部署 • 高效资源利用 • 简便的管理 人工指定 自动平衡 资源平衡调度算法 框架代码 与业务代 码隔离 集中化动 态增加与 删除作业 Saturn 启动作 业 Pull Image Executor容器 启动 作业运 行 容器化管理流程 ZK 作业调度器 控制台 作业控制 结点监听 作业调度 执行节点 Container 1 执行节点 Container 2 DCOS 资源占用 Docker Marathon+Mesos 容器调度 启动 Registry Pull镜像 资源释放 资源绑定 资源伸缩0 码力 | 58 页 | 5.40 MB | 1 年前3声明式自愈系统——高可用分布式系统的设计之道-王昕
处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移0 码力 | 44 页 | 2.47 MB | 1 年前3数字货币交易系统架构 Python实现 黄毅
监听充值交易的发生 • 跟踪交易的确认数 钱包的实现-使用官方钱包节点的rpc接口 • 难以维护和部署 • 私钥存储不安全 • 冷热钱包分离复杂 钱包的实现-分离地址生成和签名算法 • 可以自行负责私钥存储 • 可以自己实现冷钱包 • 钱包节点只负责区块链数据解析的工作和广播交易 • 甚至可以直接使用第三方节点API https://github.com/cryptorelay/py-wallet-core0 码力 | 24 页 | 799.65 KB | 1 年前3联想-贺钢架构工作在国际化项目中的应用实例
增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不 同的节点 对架构设计的影响II -- 数据库表设计 数据库表早期设计 ID ... Type Name Size Create Date … 1 … 1 1.doc0 码力 | 53 页 | 2.36 MB | 1 年前3付钱拉金融云系统架构演进和最佳实践
网络异常(单通道和多通道、不同的分布场景) 撒网与实时监控 REAL-TIME MONITORING 可视化运营 VISUAL OPERATION 优先恢复 蓝绿部署 提前准备 服务降级 kill 慢SQL、摘节点、线 程栈和内存堆现场保留 反 向 代 理 反 向 代 理 APP1 APP2 APP3 APP1 APP2 APP3 APP1 APP2 APP3 APP1 APP2 APP3 is避免 定时器浪打浪情况下,启动多个定时器即默认启动多个线程,影响系统性能 定时器浪打浪情况下,如果定时任务处理过慢会导致内存耗尽 12.避免系统中出现单点故障,包括中间件和应用程序等所有的节点 13.能异步处理的别同步处理,异步可以释放线程资源,避免阻塞,提高响应效率 14.随着业务量的增加,考虑功能拆分和数据库表拆分,除此支付系统建议按照通道 拆分,不同的通道指定独立的work线0 码力 | 35 页 | 6.05 MB | 1 年前3海量用户推送后台系统架构实践-曾振波
模块间解耦 • IDC数据同步 • 异步RPC • ICE - 负载均衡,AMI,AMD,多线程 极光推送后台系统架构 02 并行化 • 横向扩展处理能力 • 数据分片存储 • 多节点+分片+多副本架构 • 数据读写动态路由 • 请求并行处理 • 模块级别并行 • 代码级别并行 极光推送后台系统架构 03 MQ Segment OnlineMsg OnlineMsg0 码力 | 23 页 | 1.26 MB | 1 年前3
共 12 条
- 1
- 2