付钱拉金融云系统架构演进和最佳实践
POINTS 业务野蛮发展 交易量高速增加 并发请求增加 交易响应速度过慢 数据库单表 数据量剧增 模块耦合度高 开发效率低下 … 思考 THINKING 解耦 异步化 扩容 排队 队列 缓存 冷热数据隔离 读写分离 分库分表 容灾 限制 池化 ACK ... 变化 VARIETY adapter oltp db 银行/第三方支付 adapter service1 IDEAS A SendBuffer(100) Daemon ReceiveBuffer(100) B dto 消息队列 Daemon(1000) Process get put send get put get 设计 DESIGN 任务队列 dto dto dto JVM 工 作 线 程 工 作 线 程 工 作 线 程 工 作 线 程 工 作 线 程 务 服 务 服 务 服 务 服 务 JVM 工 作 线 程 工 作 线 程 工 作 线 程 工 作 线 程 工 作 线 程 服 务 服 务 服 务 服 务 服 务 任务队列 基于消息的分布式架构 MESSAGE - BASED DISTRIBUTED ARCHITECTURE 管理区 LVS-master C1 RabbitMq-1 数 据 库 服 务 器0 码力 | 35 页 | 6.05 MB | 1 年前3唯品会调度系统的前世今生
Crontab Quartz Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 关注点在定时任务而非数据, 缺少分布式并行调度的功能 阿里早期开源的分布式任务调度系 统,代码略陈旧 作业类型较单一,只能是获取/处理 数据一种模式 当当开源的分布式任务调度系统 代码较新,使用Quartz进行调度。提供 代码较新,使用Quartz进行调度。提供 高可用和分布式功能 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn Saturn 开源地址: Github.com/vipshop/Saturn 体系中的定位 服务化框OSP 开发框架Venus 唯品会基础架构体系 消息队列 VMS 全链路监控 Mercury 统一日志平台 dragonfly 任务调度平台 Saturn 统一配置中心 CfgCenter 统一鉴权中心 AuthCenter 服务网关 Janus 安全管理平台 Salus0 码力 | 58 页 | 5.40 MB | 1 年前3降级预案在同程艺龙的工程实践-王俊翔
⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 ⽀支付时限任务 出票处理理 队列列故障 已⽀支付订单被取消 ⽀支付超时 订单取消 缺乏降级设计 稳定性之路路到底有多远 如何设计⾯面向容错的系统,如何提升系统的可⽤用性 强弱依赖 • JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 数据通道(⻓长链接单通道) 数据采集 Proxy • 单⼯工直连数据通道 • ⻓长链接,数据流⽅方式实时发送 • 本地多队列列轮循,数据缓冲,合并异步发送 指标如何计算处理理 数据采集 KAFKA ETL 复合指标 ⾃自定义指标 系统指标 业务指标 指标脚本计算 指标规则计算 指标脚本 规则表达式 熔断0 码力 | 26 页 | 18.67 MB | 1 年前3微服务和Service Mesh 在多个行业落地实践
接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun.com 设计要点八:熔断,限流,降级 www.163yun.com 设计要点九:配置中心 www.163yun.com 设计要点十:日志中心 网易分布式事务的实现机制 www.163yun.com 事务发起者、事务参与方 分支事务用事务id做幂等 生成对应分支事务记录 并行调用 定时任务兜底 红色为异常流程 Q:回滚的时候,如果分支事务记录不存在,该 怎么返回? option1:返回成功 option2:返回失败 option3:引入超时判断机制0 码力 | 39 页 | 3.06 MB | 1 年前3分布式 KV 存储系统 Cellar 演进之路
分片1复制 客户端 分片1&2 log Cellar—异地容灾 • 多机房建设 网络延迟大 专线稳定性差 • 异地容灾需求 跨集群数据同步 Cellar—异地容灾 集群节点同步 消息队列同步 复制延迟 低 高 系统复杂度 低 高 运维成本 低 高 实现难度 高 低 扩展性 低 高 • 低延迟 • 低复杂度(运维成本) Cellar—异地容灾 • Cellar起源 • Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列 • QPS • ··· Cellar—无损数据迁移 智能调速+全程代理 A节点 B节点 桶2 桶1 客户端 桶4 桶4 桶1 桶3 迁移数据 B节点状态 代理请求 响应 服务器端 快慢队列 Cellar—backup request 副本1 副本2 副本3 req3 • 什么时间 等待超过 超时时间一半 • 发几次 最多两次 • 重试比例 最大20% 读请求超时降低90+% 客户端 req6 req5 req9 req9 req8 reply Cellar—快慢队列 网络 线程 工作队列 工作 线程 问题: 共用队列&线程 线上慢请求:超时请求0 码力 | 34 页 | 1.66 MB | 1 年前3海尔实时计算平台技术选型与实践
Flume适合: • 日志收集 • 日志传输 • 拦截数据 消息队列适合: • 消息持久化 • 解耦 推荐:Flume+ 消息队列 为何要引入消息队列 消息队列可选方案 • Kafka • Jafka • RocketMQ • RabbitMQ • ActiveMQ • Apollo 消息队列使用场景及选型 事务可靠性场景(ActiveMQ/RabbitMQ/RocketMQ):0 码力 | 41 页 | 3.21 MB | 1 年前3大规模分布式系统架构下调测能力构建之道
Group2 Group1 Broker1 Topic1-q1 Topic2-q3 Topic3-q2 Producer1 MQ Mock 通过本地JVM自带BlockingQueue队列模拟分布式队列, 提供消息的发布、暂存、订阅、消费处理能力 代理门面 将MQ的调用用代理模式做一层封装。 开关机制 支持多级开关切换 消息预取 通过消息预判定,解决找不到消费者导致消息被抛弃 Topic3-q1 Broker3 … … Consumer1 Consumer2 Consumer3 …. 注册中心 Producer1 Producer2 …. 内存队列1 内存队列2 内存队列3 Selector GroupN Group2 Group1 Consumer1 Consumer2 Consumer3 …. 单机MQ Mock服务 Topic10 码力 | 19 页 | 2.74 MB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
预处理bolts Data Filter 规范化 校验 监控核心流水线bolts RBAC User Role 策略发生器 异 步 线 程 分 发 分布式队列(报警系统) 合并降级 报警队列 活动监控 活动队列 报警策略 系统异常 基础策略 监控统计 业务节点 业务数据 业务数据统计 监控 数据流 系统统计 经典流式计算架构,流水线策略,线性扩展 高性能监控核心,灵活的监控策略0 码力 | 42 页 | 19.96 MB | 1 年前3QCon北京2018-《美团配送系统架构演进实践》-阴永俊
订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 计算平台 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 奖惩 业务管理 (过程) 运营工具 任务系统 骑手运营 (人) 任务 活动 等级 结算平台 (钱) 清算 结算 对账 接单网关 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 并行计算 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 奖惩 业务管理 (过程) 运营工具 任务系统 骑手运营 (人) 任务 活动 等级 结算平台 (钱) 清算 结算 对账 接单网关 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 计算平台 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 奖惩 业务管理 (过程) 运营工具 任务系统 骑手运营 (人) 任务 活动 等级 结算平台 (钱) 清算 结算 对账 接单网关0 码力 | 31 页 | 15.26 MB | 1 年前3Facebook messenger架构介绍-覃超 facebook
overview of Facebook Messenger Messenger 0.0 Messenger 1.0 系统难点 1. 信息传输的时效性 2.‘在线状态’跟踪 3. Queue(消息队列)+ 送达机制 4. 多并发连接 5. 消息的历史记录 1.0 Architecture Messenger 2.0 The New Facebook Messages Emails0 码力 | 51 页 | 4.39 MB | 1 年前3
共 20 条
- 1
- 2