 唯品会调度系统的前世今生位与选型 需要解决的问题 1 6 4 3 2 … 异构/多语言难以支持 5 缺乏统一监控、统一管理 (进程假死、运行状态未知) 缺乏容错、容灾,高可 用 缺乏分布式处理 无法合理利用机器资源 难以问题追踪 选型对比 Crontab Quartz Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动 平衡负载 资源利用 • 灵活的运维配置与部署0 码力 | 58 页 | 5.40 MB | 1 年前3 唯品会调度系统的前世今生位与选型 需要解决的问题 1 6 4 3 2 … 异构/多语言难以支持 5 缺乏统一监控、统一管理 (进程假死、运行状态未知) 缺乏容错、容灾,高可 用 缺乏分布式处理 无法合理利用机器资源 难以问题追踪 选型对比 Crontab Quartz Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动 平衡负载 资源利用 • 灵活的运维配置与部署0 码力 | 58 页 | 5.40 MB | 1 年前3
 大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer 我写了个消息Consumer,布到线上准备测测,结果,别人的消 息先到了,一下把我的预置数据全搞乱了… 7. 我的开发机性能还行,我想自己装一套依赖环境提高开发调测 效率,结果消息服务、缓存服务、服务框架装完一启动,80% 的系统资源就没有了,想想还有一堆的应用服务还没装,直接 泪崩… 8. 办公区断网,所有线上依赖环境都无法访问了,得,今天啥也 干不了了,回家洗洗睡吧…. … ….. ……… 1 2 3 解决之道 提供消息的发布、暂存、订阅、消费处理能力 代理门面 将MQ的调用用代理模式做一层封装。 开关机制 支持多级开关切换 消息预取 通过消息预判定,解决找不到消费者导致消息被抛弃 的问题。 优势:能用极低的资源损耗实现单机环境下对分布式 MQ服务的仿真模拟 分布式MQ服务 Producer2 …. Broker2 Topic1-q3 Topic2-q2 Topic3-q1 Broker3 …0 码力 | 19 页 | 2.74 MB | 1 年前3 大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer 我写了个消息Consumer,布到线上准备测测,结果,别人的消 息先到了,一下把我的预置数据全搞乱了… 7. 我的开发机性能还行,我想自己装一套依赖环境提高开发调测 效率,结果消息服务、缓存服务、服务框架装完一启动,80% 的系统资源就没有了,想想还有一堆的应用服务还没装,直接 泪崩… 8. 办公区断网,所有线上依赖环境都无法访问了,得,今天啥也 干不了了,回家洗洗睡吧…. … ….. ……… 1 2 3 解决之道 提供消息的发布、暂存、订阅、消费处理能力 代理门面 将MQ的调用用代理模式做一层封装。 开关机制 支持多级开关切换 消息预取 通过消息预判定,解决找不到消费者导致消息被抛弃 的问题。 优势:能用极低的资源损耗实现单机环境下对分布式 MQ服务的仿真模拟 分布式MQ服务 Producer2 …. Broker2 Topic1-q3 Topic2-q2 Topic3-q1 Broker3 …0 码力 | 19 页 | 2.74 MB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 serviceC- degrade 弱依赖 强依赖 强依赖 备选服务 熔断、限流 降级 业界解决⽅方案 - HYSTRIX Netflix开源的一款容错框架,支持多种降级熔断技术 资源隔离 断路路器器 降级操作 请求合并 请求缓存 实践过程中遇到的问题 • 业务改造成本⾼高,代码耦合,维护成本增⾼高 • 固化策略略,需线下修改代码,测试,发布,线上应急策略略响应不不 Application Application Application SDK Application Application Application SDK 熔断 降级 流控 隔离 实时策略略推送 数据采集 应⽤用管理理 策略略管理理 流控管理理 预案管理理 指标管理理 监控告警 数据⼤大盘 脚本开发 ETCD管理理 故障演练 业务保障管理理后台 应⽤用JVM进程0 码力 | 26 页 | 18.67 MB | 1 年前3 降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 serviceC- degrade 弱依赖 强依赖 强依赖 备选服务 熔断、限流 降级 业界解决⽅方案 - HYSTRIX Netflix开源的一款容错框架,支持多种降级熔断技术 资源隔离 断路路器器 降级操作 请求合并 请求缓存 实践过程中遇到的问题 • 业务改造成本⾼高,代码耦合,维护成本增⾼高 • 固化策略略,需线下修改代码,测试,发布,线上应急策略略响应不不 Application Application Application SDK Application Application Application SDK 熔断 降级 流控 隔离 实时策略略推送 数据采集 应⽤用管理理 策略略管理理 流控管理理 预案管理理 指标管理理 监控告警 数据⼤大盘 脚本开发 ETCD管理理 故障演练 业务保障管理理后台 应⽤用JVM进程0 码力 | 26 页 | 18.67 MB | 1 年前3
 领域驱动设计&中台/架构分层模型适配访问外界系统(调⽤用外界系统)的技术相关实现。 前端应⽤用 API服务 业务领域 基础设施 ⼲干系⼈人: 外界系统 诉求: 稳定调⽤用外部系统 技术点: 使⽤用和适配外部系统模型,隔离和快速诊断错误 ⼯工作内容: • 学习和使⽤用外部系统,如数据库,邮件系统 • 适配外部系统模型,如SQL映射到模型对象 技术⼈人员关注的层 基础设施 腐化案例例: 业务逻辑和外部调⽤用逻辑混合 如何从⼀一盘散沙到百万雄师 百万雄师的铸造秘密 — 踢正步 叠被⼦子 知⾏行行合⼀一 每个⼈人⽇日常就能做到 在⽇日常最细微处抵抗懒散腐化 坚持塑造纪律律 DDD分层架构 不不同模型适配(名词) 资源模型: 应⽤用想要⼀一把查询获取所有信息,⼀一个操作做完业务 前端应⽤用 API服务 业务领域 基础设施 业务模型: 精确表达⼀一个业务概念,分治管理理复杂度 存储模型: 性能最优化 DDD分层架构 基础设施 业务操作: 注册 注销 登录 退出 修改 撤销 存储动作: INSERT UPDATE DELETE 资源模型: 应⽤用想要⼀一把查询获取所有信息,⼀一个操作做完业务 业务模型: 精确表达⼀一个业务概念,分治管理理复杂度 存储模型: 性能最优化 不不同层级的模型坚决隔离, 严格⼀一对⼀一翻译映射,不不准复⽤用 DDD分层架构治理理 HTTP⽅方法: POST GET PUT0 码力 | 39 页 | 2.54 MB | 1 年前3 领域驱动设计&中台/架构分层模型适配访问外界系统(调⽤用外界系统)的技术相关实现。 前端应⽤用 API服务 业务领域 基础设施 ⼲干系⼈人: 外界系统 诉求: 稳定调⽤用外部系统 技术点: 使⽤用和适配外部系统模型,隔离和快速诊断错误 ⼯工作内容: • 学习和使⽤用外部系统,如数据库,邮件系统 • 适配外部系统模型,如SQL映射到模型对象 技术⼈人员关注的层 基础设施 腐化案例例: 业务逻辑和外部调⽤用逻辑混合 如何从⼀一盘散沙到百万雄师 百万雄师的铸造秘密 — 踢正步 叠被⼦子 知⾏行行合⼀一 每个⼈人⽇日常就能做到 在⽇日常最细微处抵抗懒散腐化 坚持塑造纪律律 DDD分层架构 不不同模型适配(名词) 资源模型: 应⽤用想要⼀一把查询获取所有信息,⼀一个操作做完业务 前端应⽤用 API服务 业务领域 基础设施 业务模型: 精确表达⼀一个业务概念,分治管理理复杂度 存储模型: 性能最优化 DDD分层架构 基础设施 业务操作: 注册 注销 登录 退出 修改 撤销 存储动作: INSERT UPDATE DELETE 资源模型: 应⽤用想要⼀一把查询获取所有信息,⼀一个操作做完业务 业务模型: 精确表达⼀一个业务概念,分治管理理复杂度 存储模型: 性能最优化 不不同层级的模型坚决隔离, 严格⼀一对⼀一翻译映射,不不准复⽤用 DDD分层架构治理理 HTTP⽅方法: POST GET PUT0 码力 | 39 页 | 2.54 MB | 1 年前3
 付钱拉金融云系统架构演进和最佳实践交易量高速增加 并发请求增加 交易响应速度过慢 数据库单表 数据量剧增 模块耦合度高 开发效率低下 … 思考 THINKING 解耦 异步化 扩容 排队 队列 缓存 冷热数据隔离 读写分离 分库分表 容灾 限制 池化 ACK ... 变化 VARIETY adapter oltp db 银行/第三方支付 adapter service1 service2 和第三方系统交互需要互加白名单确保安全 5.系统全站提供HTTPS服务 6.和第三方系统交互报文需要加密传输 7.用户敏感数据做数据脱敏 8.预防页面被频繁请求,占用系统资源 9.预防API被频繁请求,占用系统资源 规范(续) SPECIFICATION (CONTINUED) 三 性能规范 1.常见OOM预防 2.禁止应用中显式创建线程,避免不可控出现unable to create 8.代码中不建议使用@Transactional,因为一般业务场景中用不到,它影响数 据库性能并且多个操作可能在并发下导致数据库死锁 9.数据库单表达到一定数据量级需要做分库分表或者冷热数据隔离,避免业 务增加带来的性能问题 10.尽量避免使用全局变量防止并发出现线程安全问题,从而影响业务 11.定时器问题预防 定时器浪打浪情况下,任务重复处理会导致资金风险,建议使用redis避免0 码力 | 35 页 | 6.05 MB | 1 年前3 付钱拉金融云系统架构演进和最佳实践交易量高速增加 并发请求增加 交易响应速度过慢 数据库单表 数据量剧增 模块耦合度高 开发效率低下 … 思考 THINKING 解耦 异步化 扩容 排队 队列 缓存 冷热数据隔离 读写分离 分库分表 容灾 限制 池化 ACK ... 变化 VARIETY adapter oltp db 银行/第三方支付 adapter service1 service2 和第三方系统交互需要互加白名单确保安全 5.系统全站提供HTTPS服务 6.和第三方系统交互报文需要加密传输 7.用户敏感数据做数据脱敏 8.预防页面被频繁请求,占用系统资源 9.预防API被频繁请求,占用系统资源 规范(续) SPECIFICATION (CONTINUED) 三 性能规范 1.常见OOM预防 2.禁止应用中显式创建线程,避免不可控出现unable to create 8.代码中不建议使用@Transactional,因为一般业务场景中用不到,它影响数 据库性能并且多个操作可能在并发下导致数据库死锁 9.数据库单表达到一定数据量级需要做分库分表或者冷热数据隔离,避免业 务增加带来的性能问题 10.尽量避免使用全局变量防止并发出现线程安全问题,从而影响业务 11.定时器问题预防 定时器浪打浪情况下,任务重复处理会导致资金风险,建议使用redis避免0 码力 | 35 页 | 6.05 MB | 1 年前3
 海量用户推送后台系统架构实践-曾振波• 数据和业务分离 • 快速迭代 • 模块间通过MQ/RPC交互 极光推送后台系统架构 01 Segment Conn StatCenter OnlineMsg 异步化 • 充分利用资源,减少请求等待时间,提升系统吞吐量 • 消息化请求 • MQ - RabbitMQ, RocketMQ • 模块间解耦 • IDC数据同步 • 异步RPC • ICE - 负载均衡,AMI,AMD,多线程 • 对外业务隔离,异地多机房部署,健康检查,业务快速部署及调度 • 通信安全 • SSL,私有加密协议 • 服务安全 • 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理 • 内外集群隔离 • Pod包含多个容器0 码力 | 23 页 | 1.26 MB | 1 年前3 海量用户推送后台系统架构实践-曾振波• 数据和业务分离 • 快速迭代 • 模块间通过MQ/RPC交互 极光推送后台系统架构 01 Segment Conn StatCenter OnlineMsg 异步化 • 充分利用资源,减少请求等待时间,提升系统吞吐量 • 消息化请求 • MQ - RabbitMQ, RocketMQ • 模块间解耦 • IDC数据同步 • 异步RPC • ICE - 负载均衡,AMI,AMD,多线程 • 对外业务隔离,异地多机房部署,健康检查,业务快速部署及调度 • 通信安全 • SSL,私有加密协议 • 服务安全 • 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理 • 内外集群隔离 • Pod包含多个容器0 码力 | 23 页 | 1.26 MB | 1 年前3
 从百度文件系统看大型分布式系统设计中的定式与创新Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 - 中心化与去中心化 Tolerance 分区 容忍性 • 分布式系统 - 容忍网络隔离是必须的 - CP、AP Quorum机制 • Quorum写(NWR) - Write 写成功W副本 - Read 读R副本 - W+R>N,就不会丢失更新 • 一致性协议 - Paxos - Raft CAP到CAD的演变 • 必须容忍网络隔离 - CAP->CA • 跨地域的延迟 - CA->CAD/CAL0 码力 | 24 页 | 937.45 KB | 1 年前3 从百度文件系统看大型分布式系统设计中的定式与创新Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 - 中心化与去中心化 Tolerance 分区 容忍性 • 分布式系统 - 容忍网络隔离是必须的 - CP、AP Quorum机制 • Quorum写(NWR) - Write 写成功W副本 - Read 读R副本 - W+R>N,就不会丢失更新 • 一致性协议 - Paxos - Raft CAP到CAD的演变 • 必须容忍网络隔离 - CAP->CA • 跨地域的延迟 - CA->CAD/CAL0 码力 | 24 页 | 937.45 KB | 1 年前3
 微服务和Service Mesh 在多个行业落地实践www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun API网关带来的能力 - 请求透明代理与路由 - 调用审计 - 统一API规范与接口管理 - 基于ak/sk的认证鉴权 - 服务/API审计与调用分析 - 不同维度故障隔离、服务熔断与降级 - 不同维度的灵活流量控制 - 自定义分流插件 …… www.163yun.com 从API网关到Service Mesh 目前G0/G1网关在一定程度上充当了“代理”的角色,基0 码力 | 39 页 | 3.06 MB | 1 年前3 微服务和Service Mesh 在多个行业落地实践www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun API网关带来的能力 - 请求透明代理与路由 - 调用审计 - 统一API规范与接口管理 - 基于ak/sk的认证鉴权 - 服务/API审计与调用分析 - 不同维度故障隔离、服务熔断与降级 - 不同维度的灵活流量控制 - 自定义分流插件 …… www.163yun.com 从API网关到Service Mesh 目前G0/G1网关在一定程度上充当了“代理”的角色,基0 码力 | 39 页 | 3.06 MB | 1 年前3
 分布式 KV 存储系统 Cellar 演进之路• Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主0 码力 | 34 页 | 1.66 MB | 1 年前3 分布式 KV 存储系统 Cellar 演进之路• Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主0 码力 | 34 页 | 1.66 MB | 1 年前3
 演进式架构:数字化世界"进化论" 肖然is a copy of the organization's communication structure. -- Melvyn Conway, 1967 FROM: 隔离的功能性团队,只对隔离的应用架构负责。 TO: 跨职能的团队,对业务能力端到端负责。 多维度 Multiple Dimensions evolvability 安全架构0 码力 | 22 页 | 2.14 MB | 1 年前3 演进式架构:数字化世界"进化论" 肖然is a copy of the organization's communication structure. -- Melvyn Conway, 1967 FROM: 隔离的功能性团队,只对隔离的应用架构负责。 TO: 跨职能的团队,对业务能力端到端负责。 多维度 Multiple Dimensions evolvability 安全架构0 码力 | 22 页 | 2.14 MB | 1 年前3
共 20 条
- 1
- 2













