付钱拉金融云系统架构演进和最佳实践
系统架构演进和最佳实践 SPEAKER 冯忠旗 分享者 冯忠旗 SHARER 付钱拉高级技术经理 讲点儿什么 SPEAK SOMETHING 演进之路 THE PATH OF EVOLUTION 01 业务模型 • 一无所有的初创期,单一架构轻装上阵 • 石器到工业的跃进,分布式架构保驾护航 • 化整为零,应对雪崩效应分而治之 • 从1到N的业务成长 02 架构演进过程 CONFUSION 需求设计阶段- 首次拦截 开发实现阶段-尽可能避免故障 系统运行阶段-及时发现故障 系统运行阶段-出现故障快速解决故障 思路 THINKING 预见运行期、所想即所得、限制和保护 设计可容错的系统(快速失败、超时、自动重路由) 设计具备自我保护的系统(拆分、限制、优雅停止) 制定合适的开发规范 撒网 实时监控(傻瓜式、开发不用查日志) 可视化运营 网络监控 耗时类(交易总时长、分段时长、SQL耗时、代码耗时) 统计类(订单量异常预警、非法IP预警、交易额过大) 网络异常(单通道和多通道、不同的分布场景) 撒网与实时监控 REAL-TIME MONITORING 可视化运营 VISUAL OPERATION 优先恢复 蓝绿部署 提前准备 服务降级 kill 慢SQL、摘节点、线 程栈和内存堆现场保留 反 向 代 理 反 向 代 理 APP1 APP2 APP3 APP10 码力 | 35 页 | 6.05 MB | 1 年前3微服务和Service Mesh 在多个行业落地实践
微服务和Service Mesh 在多个行业落地实践 www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix 粒度更细:可指定服务版本,类,方法级别 配置灵活:可配置检测粒度为每M毫秒N个请求P%的错误率 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 可自行定制:通过暴露自定义异常NSFExcetion解决任意业务方法的容错,支持超时、 failover,failfast容错。0 码力 | 39 页 | 3.06 MB | 1 年前3领域驱动设计&中台/基于DDD的领域建模中的模版和工具实践
0 码力 | 36 页 | 3.81 MB | 1 年前3声明式自愈系统——高可用分布式系统的设计之道-王昕
云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 服务节点不能随便迁移 CAP Is Not Simply 2 out of 3 Ø 没有分区时,可用性和一致 性要兼得 Ø 经常要考虑的是可用性和一 致性各有一部分 Ø 根据不同设计应用需求有不 同的组合 Ø 重要的是系统如何恢复到 “最佳状态” 分区容错性 可 用 性 一 致 性 系 统 服 务 等 级 分区容错性 可 用 性 一 致 性 系 统 自 愈 程 度 Look Distributed0 码力 | 44 页 | 2.47 MB | 1 年前3降级预案在同程艺龙的工程实践-王俊翔
各应⽤用,没有统⼀一的管 理理和治理理。久⽽而久之,⽆无⼈人知道系统内有多少降级点,降级是如 何实现的 • 缺乏UI、没有灵活的参数、策略略配置,没有预案制定管理理能⼒力力 业务保障平台建设之路路 业务保障平台建设之路路 服务管理理 策略略管理理 预案制定 线上演练 • 降级服务统⼀一注册管理理,通过降 级服务质量量数据从整体反映各应 ⽤用的降级点和可⽤用性保障措施 • 降级策略略集中管理理,通过参数 降级服务如何⾃自动探测恢复 ⽅方法代理理 降级 正常流程 保护期窗⼝口 (10min) 窗⼝口期 探测期窗⼝口 (5min) 探测流量量分配 窗⼝口期外 窗⼝口期外 降级⽅方法 熔断 降级流程 恢复探测 探测 开启 开启 未降级 已降级 关闭 窗⼝口期 指标计算 降级触发/恢复 • 降级保护期窗⼝口内,不不进⾏行行恢复试探 • 流量量分配的⽅方式实施恢复探测,百分⽐比、总量量 流量量分配的⽅方式实施恢复探测,百分⽐比、总量量 • 实时计算探测流量量指标,指标恢复关闭降级 ⽅方法调⽤用 百分⽐比策略略 总量量策略略 ⾃自定义策略略 降级预案 运营:明天要做活动, 希望降级不不重要的服务 运营 开发 开发:不不清楚这样的业务 场景有哪些次要服务需要 降级 • 预案分级 从全局建⽴立服务重要程度评估模型 • 蓝⾊色预警 - ⼩小规模⾮非核⼼心服务降级 • ⻩黄⾊色预警 - ⼤大规模⾮非核⼼心服务降级0 码力 | 26 页 | 18.67 MB | 1 年前3高可用分布式流数据存储设计-李玥
京东集团 技术架构部 架构师 负责主导设计新⼀一代京东消息中间件系统,专注于流数据的⼀一致性分发和可靠存储、分布式实时计算和⾼高可⽤用分 布式系统架构等技术领域。 从事互联⽹网研发、架构10余年年,曾在浪潮集团、当当⽹网等公司从事架构相关⼯工作。2017年年加⼊入京东,期间提升京 东商城相关系统的性能和吞吐量量数倍。 ⽬目前致⼒力力于推进京东基础架构技术的创新、对外赋能与开源。 ⽬目录 Why Complexity 复杂度 Apache ZooKeeper “程序员都喜欢ZooKeeper,但用户正相反” 可维护性问题 多机房部署时可⽤用性问题 数据容量量有限,集群规模有限 选举恢复速度慢,不不可⽤用时间较⻓长 John Ousterhout Diego Ongaro “In search of an understandable consensus algorithm” 牺牲可⽤用性换取⼀一致性 性能⼀一般 集群规模不不能太⼤大 Raft总结 读请求分流 顺序⼀一致 已提交位置之前的⽇日志具有不不变性。 对于提交的⽇日志,相同位置上Follower的⽇日志和Leader上是⼀一样的。 强⼀一致 如果两个节点上的⽇日志完全相同,并且这些⽇日志都已经被状态机执 ⾏行行,那么这两个节点的状态是相同的。 集群节点数越多性能越好吗? NO 引⼊入Observers0 码力 | 36 页 | 6.02 MB | 1 年前3唯品会调度系统的前世今生
Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 关注点在定时任务而非数据, 缺少分布式并行调度的功能 阿里早期开源的分布式任务调度系 统,代码略陈旧 作业类型较单一,只能是获取/处理 数据一种模式 当当开源的分布式任务调度系统 代码较新,使用Quartz进行调度。提供 高可用和分布式功能 功能单一,只支持Java,不支持 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn Set PathA=1 Set PathA=0 Event notify or not? Set PathA=0 解决办法: 监听逻辑不做值判断,只做事件判断;保证处理逻辑幂等。 坑2-ZK掉线恢复后状态改变 Executor-A Executor-B ZK断线 接管分片1 分片1的zk数据被修改 执行分片1 ZK重连成功 断线前未完成的ZK 操作继续执行 解决办法: 断线0 码力 | 58 页 | 5.40 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 • 锁和信号量 - Nexus - 分布式锁 - 分布式通知 • 文件系统 - The Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 不能依赖ZooKeeper等系统选主 - 分布式的双主问题只从存储系统解决 这些设计给BFS带来哪些优势? HDFS BFS 名字节点 扩展方式 联邦式 分裂的目录树 分布式 统一的目录树 宕机恢复时间 分钟级 秒级 外部依赖 ZooKeeper & QJM 无 开发语言 Java C++ Q&A • 欢迎参与BFS的开发 • https://github.com/baidu/bfs0 码力 | 24 页 | 937.45 KB | 1 年前3QCon北京2018-《美团配送系统架构演进实践》-阴永俊
的监控与容灾预案 规模化阶段:容灾能力 快速起量,系统质量、研发效率问题凸显 规模化阶段:系统容量 静态评估 工具辅助评估 场景压测 全链路压测 垂直拆分 水平拆分 自动归档 冗余备份 容量评估由人到系统 容量提升分阶段实施 快速起量,系统质量、研发效率问题凸显 规模化阶段:并行计算能力 计算能力是智能调度的关键! • 外卖场景下的配送计算能力要求 快速起量,系统质量、研发效率问题凸显0 码力 | 31 页 | 15.26 MB | 1 年前3分布式异地多活架构实践之路
北京 50% 合肥 50% 广州 50% 1 1 2 冗余机器与其他系统复用,弹性伸缩 配套系统支撑 测试场景覆盖 灰度发布上线 机房流量调度 监控覆盖 故障模拟演练 数据恢复 配置平台 服务化平台 日常运维 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 • 讯飞输入法解决方案 • 实际应用效果 • 未来规划 可用性 机房内故障 机房入口网0 码力 | 36 页 | 1.66 MB | 1 年前3
共 33 条
- 1
- 2
- 3
- 4