 高性能高可用机票实时搜索系统⾼性能⾼可⽤机票实时搜索系统 去哪⼉⺴ 梁启康 议题 系统诉求 海海量量数据 设计思路路 搜索框架 报价引擎 待解问题 系统诉求 • 全⽹网价最低 • 航线报价最全 • 实时性最好 • 产品最丰富 • 预定最流畅 ⾯面临问题 航班舱位时刻变动 供应商规则调整密集 航司政策各有不不同 供应商的office权限不不⼀一致 运价规则变化繁多 GDS数据成本不不菲 响应所有渠道价格变动进⾏行行计算 • 快 • 0 变价 设计思路路 CAP BASE 理理论 按需计算 消息驱动 异步 分布式 分级缓存 ⽆无状态 搜索框架 PriceMerger 报价引擎 供应商直连 旗舰店 CacheManager 抓取 App WWW Touch 分销 Cache Redis MQ MQ 航班数据 运价数据 应⽤用层 聚合层 报价源 基础数据 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新 报价引擎 供应商规则 航司运价 航班舱位状态 套餐搭售 + + 低价特惠 商旅优选 头等舱 。。。 报价引擎—供应商规则 报价引擎 • 背景 • 供应商定价规则、航班舱 位、运价,决定底价 • 供应商数千,不不少供应商 上千万条规则 • 定价规则按供应商分库0 码力 | 26 页 | 1.94 MB | 1 年前3 高性能高可用机票实时搜索系统⾼性能⾼可⽤机票实时搜索系统 去哪⼉⺴ 梁启康 议题 系统诉求 海海量量数据 设计思路路 搜索框架 报价引擎 待解问题 系统诉求 • 全⽹网价最低 • 航线报价最全 • 实时性最好 • 产品最丰富 • 预定最流畅 ⾯面临问题 航班舱位时刻变动 供应商规则调整密集 航司政策各有不不同 供应商的office权限不不⼀一致 运价规则变化繁多 GDS数据成本不不菲 响应所有渠道价格变动进⾏行行计算 • 快 • 0 变价 设计思路路 CAP BASE 理理论 按需计算 消息驱动 异步 分布式 分级缓存 ⽆无状态 搜索框架 PriceMerger 报价引擎 供应商直连 旗舰店 CacheManager 抓取 App WWW Touch 分销 Cache Redis MQ MQ 航班数据 运价数据 应⽤用层 聚合层 报价源 基础数据 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新 报价引擎 供应商规则 航司运价 航班舱位状态 套餐搭售 + + 低价特惠 商旅优选 头等舱 。。。 报价引擎—供应商规则 报价引擎 • 背景 • 供应商定价规则、航班舱 位、运价,决定底价 • 供应商数千,不不少供应商 上千万条规则 • 定价规则按供应商分库0 码力 | 26 页 | 1.94 MB | 1 年前3
 美团点评旅游推荐系统的演进•有啊商城的开发 •2010年毕业于中科院计算所 Outline •美团点评酒旅业务简介 •基于用户画像的召回策略演进 •基于L2R的排序策略优化 •从海量大数据的离线计算到高并发在线服务的推荐引擎架构设计 •推荐在美团点评酒旅的应用实践 人工智能应用 Critical Physical World Critical Digital World Non-Critical Digital Underfiting >期望目标值 接近或略逊于训练集 合适 >期望目标值 远差于训练集 Overfiting 模型调试 模型Debug工具 从海量大数据的离线计算到高并 发在线服务的推荐引擎架构设计 猜你喜欢 筛选扩大召回 详情页推荐 搜索少/无结果推荐 …. 应用 场景 层 推荐 服务 层 召回 过滤 排序 POST Rerank 分流 日志收集 Thrift 接口 核心 • 通用过滤策略:黑名单 • 针对某类召回策略:浏览未购买 • Rerank:个性化排序 • Post Rerank 推荐引擎 API 推荐服务 APP 召回 过滤 Rerank Post Rerank Rerank服务 Merge 推荐引擎-Rerank Feature List Feature Config Model File 模型及特征配置中心 Strategy0 码力 | 49 页 | 5.97 MB | 1 年前3 美团点评旅游推荐系统的演进•有啊商城的开发 •2010年毕业于中科院计算所 Outline •美团点评酒旅业务简介 •基于用户画像的召回策略演进 •基于L2R的排序策略优化 •从海量大数据的离线计算到高并发在线服务的推荐引擎架构设计 •推荐在美团点评酒旅的应用实践 人工智能应用 Critical Physical World Critical Digital World Non-Critical Digital Underfiting >期望目标值 接近或略逊于训练集 合适 >期望目标值 远差于训练集 Overfiting 模型调试 模型Debug工具 从海量大数据的离线计算到高并 发在线服务的推荐引擎架构设计 猜你喜欢 筛选扩大召回 详情页推荐 搜索少/无结果推荐 …. 应用 场景 层 推荐 服务 层 召回 过滤 排序 POST Rerank 分流 日志收集 Thrift 接口 核心 • 通用过滤策略:黑名单 • 针对某类召回策略:浏览未购买 • Rerank:个性化排序 • Post Rerank 推荐引擎 API 推荐服务 APP 召回 过滤 Rerank Post Rerank Rerank服务 Merge 推荐引擎-Rerank Feature List Feature Config Model File 模型及特征配置中心 Strategy0 码力 | 49 页 | 5.97 MB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 指标(HBase) 指标明细(ES) 降级⽇日志(ES) ETL 指标计算(Flink) 脚本引擎 查 询 服 务 ⽇日志数据 指标(Redis) 业务异常数据快照(ES) 熔断降级通知 降级服务管理理 故障代码注⼊入 降级服务注册设计 serviceA serviceB ServiceC.指标1 指标引⽤用 指标2 指标1 指标3 指标N 指标2 指标1 指标3 指标N 指标2 指标1 指标3 指标N 指标2 指标1 指标3 指标N MVEL 表达式引擎 降级服务管理理 • 降级服务管理理 • 应⽤用、服务、策略略产品化、数据化 • 应⽤用、服务指标实时监控,健康状态评估 • 实时监测服务降级执⾏行行状态,降级发⽣生点数据 快照及时回溯0 码力 | 26 页 | 18.67 MB | 1 年前3 降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 指标(HBase) 指标明细(ES) 降级⽇日志(ES) ETL 指标计算(Flink) 脚本引擎 查 询 服 务 ⽇日志数据 指标(Redis) 业务异常数据快照(ES) 熔断降级通知 降级服务管理理 故障代码注⼊入 降级服务注册设计 serviceA serviceB ServiceC.指标1 指标引⽤用 指标2 指标1 指标3 指标N 指标2 指标1 指标3 指标N 指标2 指标1 指标3 指标N 指标2 指标1 指标3 指标N MVEL 表达式引擎 降级服务管理理 • 降级服务管理理 • 应⽤用、服务、策略略产品化、数据化 • 应⽤用、服务指标实时监控,健康状态评估 • 实时监测服务降级执⾏行行状态,降级发⽣生点数据 快照及时回溯0 码力 | 26 页 | 18.67 MB | 1 年前3
 分布式 KV 存储系统 Cellar 演进之路HASH Key 桶号 存储节点 固定HASH算 法 固定数目 数据分片 桶->存储节点 对照表 Cellar起源—Tair架构 服务层 请求 mdb 响应 ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 请求超时抖动 Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列 • QPS • ··· Cellar—无损数据迁移 智能调速+全程代理 A节点 B节点 桶2 桶1 客户端 桶4 桶4 桶1 桶3 迁移数据0 码力 | 34 页 | 1.66 MB | 1 年前3 分布式 KV 存储系统 Cellar 演进之路HASH Key 桶号 存储节点 固定HASH算 法 固定数目 数据分片 桶->存储节点 对照表 Cellar起源—Tair架构 服务层 请求 mdb 响应 ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 请求超时抖动 Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列 • QPS • ··· Cellar—无损数据迁移 智能调速+全程代理 A节点 B节点 桶2 桶1 客户端 桶4 桶4 桶1 桶3 迁移数据0 码力 | 34 页 | 1.66 MB | 1 年前3
 领域驱动设计&中台/演进式架构的平台化落地log格式入⼿手 框架管理理 代码模版⽣生成 引擎 GIT插件通信 对接DevOps 流⽔水线 契约测试Mocker Server API定义⽣生成Jar 契约配置中⼼心 统⼀一管理理 获得运⾏行行架构、实例例状态 ELK⽅方 案 对接资源室 获得组织结 构 对接175产品 定义管理理 Fitness Function执 ⾏行行引擎 集成Sonar Server 微服务 服务地 图 API 契约 外部系 统 部署架构服务 架构约 束 部署架 构 部署组 件 架构守护 服务 架构 守护 度量量服务 度量量分 析 代码⽣生成引擎服务 依赖 框架模 板 微服务 ⼯工程 码云 U D U D DevOps平台 微服务契约测试平台 Sonar U D D U U D U D U D U0 码力 | 42 页 | 2.95 MB | 1 年前3 领域驱动设计&中台/演进式架构的平台化落地log格式入⼿手 框架管理理 代码模版⽣生成 引擎 GIT插件通信 对接DevOps 流⽔水线 契约测试Mocker Server API定义⽣生成Jar 契约配置中⼼心 统⼀一管理理 获得运⾏行行架构、实例例状态 ELK⽅方 案 对接资源室 获得组织结 构 对接175产品 定义管理理 Fitness Function执 ⾏行行引擎 集成Sonar Server 微服务 服务地 图 API 契约 外部系 统 部署架构服务 架构约 束 部署架 构 部署组 件 架构守护 服务 架构 守护 度量量服务 度量量分 析 代码⽣生成引擎服务 依赖 框架模 板 微服务 ⼯工程 码云 U D U D DevOps平台 微服务契约测试平台 Sonar U D D U U D U D U D U0 码力 | 42 页 | 2.95 MB | 1 年前3
 陈辉-架构师的业务思维else不能解决本质问题 多平台、多渠道是个趋势 跳出技术思维 多渠道的本质是商品交易体系的扩展性 理解清楚当前需求 具有业务前瞻性 不要过度设计 多渠道 多平台 多用户 模块化 SPI 规则引擎 流程引擎 商品平台化 交易平台化 促销平台化 渠道下单 无结构化商品 多平台玩法 多端适配和开发组件 组件池 怎么去实践 走到业务一线去 找对评判标准-比如客户价值 权衡技术和业务 看远一点,做实际点0 码力 | 32 页 | 3.18 MB | 1 年前3 陈辉-架构师的业务思维else不能解决本质问题 多平台、多渠道是个趋势 跳出技术思维 多渠道的本质是商品交易体系的扩展性 理解清楚当前需求 具有业务前瞻性 不要过度设计 多渠道 多平台 多用户 模块化 SPI 规则引擎 流程引擎 商品平台化 交易平台化 促销平台化 渠道下单 无结构化商品 多平台玩法 多端适配和开发组件 组件池 怎么去实践 走到业务一线去 找对评判标准-比如客户价值 权衡技术和业务 看远一点,做实际点0 码力 | 32 页 | 3.18 MB | 1 年前3
 QCon北京2018-《美团配送系统架构演进实践》-阴永俊计算能力是智能调度的关键! • 外卖场景下的配送计算能力要求 快速起量,系统质量、研发效率问题凸显 规模化阶段:提升各类运营系统迭代效率 元数据 管理 表单 管理 样式 管理 规则 引擎 动态表单 流程平台 �������� ������ ������ lu�K����/��� g��K����� ���K��//���� tab_S� ������( �Kjh n�D���������0 码力 | 31 页 | 15.26 MB | 1 年前3 QCon北京2018-《美团配送系统架构演进实践》-阴永俊计算能力是智能调度的关键! • 外卖场景下的配送计算能力要求 快速起量,系统质量、研发效率问题凸显 规模化阶段:提升各类运营系统迭代效率 元数据 管理 表单 管理 样式 管理 规则 引擎 动态表单 流程平台 �������� ������ ������ lu�K����/��� g��K����� ���K��//���� tab_S� ������( �Kjh n�D���������0 码力 | 31 页 | 15.26 MB | 1 年前3
 大规模分布式系统架构下调测能力构建之道Remote Call 负载均衡 策略 Runtime Mock数据文件 远程服务 Mock配置 开关/策略… 路由 策略 … Mock过滤器 启 动 加 载 服务 调用 脚本引擎 Mock数据规范 格式规范: 1.静态匹配 2.动态匹配 3.多版本支持(服务版本) 管理规范: 1.服务谁提供,就由谁负责相应Mock数据的 制作。 2.mock数据可被使用者二次修改或替换。0 码力 | 19 页 | 2.74 MB | 1 年前3 大规模分布式系统架构下调测能力构建之道Remote Call 负载均衡 策略 Runtime Mock数据文件 远程服务 Mock配置 开关/策略… 路由 策略 … Mock过滤器 启 动 加 载 服务 调用 脚本引擎 Mock数据规范 格式规范: 1.静态匹配 2.动态匹配 3.多版本支持(服务版本) 管理规范: 1.服务谁提供,就由谁负责相应Mock数据的 制作。 2.mock数据可被使用者二次修改或替换。0 码力 | 19 页 | 2.74 MB | 1 年前3
 领域驱动设计&中台/可视化的遗留系统微服务改造3 8 1 5 16 14 2 8 5 5 4 5 3 16 13 1 5 2 3 2 5 3 10 10 4 服务B 服务C 服务D 已可视化 遗留留系统拆解给⻜飞⾏行行中的⻜飞机换引擎 友谊第⼀一 ⽐比赛第⼆二 降⻰龙⼋八步第⼀一式 ⽤用户 订单 商品 第⼀一式: 1. 明确要拆解的服务所涉及 的模块 2. 验证之前代码依赖分析和 数据库分析的结果 3.0 码力 | 54 页 | 3.85 MB | 1 年前3 领域驱动设计&中台/可视化的遗留系统微服务改造3 8 1 5 16 14 2 8 5 5 4 5 3 16 13 1 5 2 3 2 5 3 10 10 4 服务B 服务C 服务D 已可视化 遗留留系统拆解给⻜飞⾏行行中的⻜飞机换引擎 友谊第⼀一 ⽐比赛第⼆二 降⻰龙⼋八步第⼀一式 ⽤用户 订单 商品 第⼀一式: 1. 明确要拆解的服务所涉及 的模块 2. 验证之前代码依赖分析和 数据库分析的结果 3.0 码力 | 54 页 | 3.85 MB | 1 年前3
共 9 条
- 1













