《Web请求异步处理和海量数据即时分析在淘宝开放平台的实.pdf》由会员分享,可在线阅读,更多相关《Web请求异步处理和海量数据即时分析在淘宝开放平台的实.pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 放翁(文初放翁(文初) Outline s Web请求异步化处理的实践 s Web请求异步化的原因 s 异步化模式在开放平台的使用场景 s“海量”数据“即时”分析 s“海量”、“即时”的需求背景 s 整体设计结构和思路 s 优化实践 Web请求异步化的原因 s 为什么要异步化?根本原因:容器线程利用率不高。s 业务处理天然异步化需求(业务处理消耗比较久,外部事件激发)s 减少连接带来的消耗,充分利用服务端并行处理能力 s 减少业务依赖不稳定对容器线程资源的低效率占用 容器线程 业务处理 渲染展示 异步化模式在开放平台的使异步化模式在开放平台的使用场景 用场景 框架控制串行化逻辑隔离 实际应用
2、:服务降级,Beta发布 半异步化模式再次分配请求处理资源 实际应用:服务隔离 并行任务执行,部分累加输出 实际应用:batch api 基于事件驱动,服务端异步消息推送 实际应用:streaming api 异步化模式在开放平台的使异步化模式在开放平台的使用场景 用场景 管道化管道化:1.串行逻辑非关键路径降级。2.框架级支持公用逻辑植入。(log,lazy parser,event driven,comet)3.流程逻辑复用与隔离。异步化模式在开放平台的使异步化模式在开放平台的使用场景 用场景 异步化模式在开放平台的使异步化模式在开放平台的使用场景 用场景 异步化模式在开放平台的使异步化模
3、式在开放平台的使用场景 用场景 3,6,2 某一天三个时间段的淘客服务统计数据 服务隔离的效果 服务隔离的效果 异步化模式在开放平台的使异步化模式在开放平台的使用场景 用场景 异步化模式在开放平台的使异步化模式在开放平台的使用场景 用场景“海量”、“即时”的需求背景 现状 需求 监控告警,趋势分析(结果产出周期小于2分钟)平台维度分析 服务维度分析 应用维度分析 15亿(400G)1台实体机器12台虚拟机器 整体设计结构和思路 整体设计结构和思路 Master:管理任务(分析任务),合并结果(Reduce),输出结果(全量统计,增量片段统计)Slave:Require Job+Do Job+R
4、eturn Result,随意加入,退出集群。Job:(Input+Analysis Rule+Output)的定义。整体设计结构和思路 后台系统任务分配:无负载分配算法,采用细化任务工作者按需自取粗暴简单任务重置策略。Slave与Master采用单向通信,便于容量扩充和缩减。Job自描述性:数据来源,分析规则,结果输出。异构化任务处理集群共享Slave。数据存储无业务性,分析规则包含业务含义(优势在于可扩展,劣势在于全量扫描日志)透明化整个集群运行状况,保证简单粗暴的方式下能够快速定位出节点问题或者任务问题。Master单点采用冷备方式解决。(异步化外移状态,减少服务端状态数据)整体设计结构
5、和思路 Master Slave 数据量:2千万-1亿-8亿-15亿。报表输出结果:10份配置-30份-60份-100份。统计后的数据量:10k -10M -9G。统计周期的要求:1天-5分钟-3分钟-1分半。优化实践 纵向系统的工作的分担纵向系统的工作的分担 1.平面化分担合并任务 2.中间结果输出,外部合并 优化实践 流程中间数据优化流程中间数据优化 减少中间结果无用存储和处理 压缩中间结果和内部标识(可逆vs不可逆,算法vs对照表)节省带宽,内存,cpu taobao.user.get12132342fangweng 服务成功率=服务成功次数/服务总数 优化实践 特殊化处理特殊的流程特殊
6、化处理特殊的流程:Master 1.简化序列化(已知序列化对象可简单化)2.减少内存申请,尽快释放处理后的数据 3.减少中间过程的消耗 优化实践 特殊化处理特殊的流程特殊化处理特殊的流程:Report =N*group by K Report apiName,apiTotalCount,apiResponse,apiFailCount apiName,apiResponse apiName,apiTotalCount apiName,apiFailCount KV Pool1 KV Pool3 KV Pool2 1.深度遍历+二维数组 2.广度遍历+一维数组 优化实践 合并调度及磁盘内存互换的
7、优化合并调度及磁盘内存互换的优化:合并数据是内存消耗重灾区:1.合并前有大量数据挂接在接收缓存列表上 2.合并过程会消耗大量的内存 3.合并后主干占用大量内存 4.输出时占用大量内存 合并数据是内存消耗重灾区:1.是否可以快速处理回收?2.是否可以减少中间结果占用空间 3.是否可以释放主干,需要时载入 4.是否可以压缩和过滤 优化实践 合并调度及磁盘内存互换的优化合并调度及磁盘内存互换的优化:优化实践 磁盘内存互换的优化磁盘内存互换的优化:消耗:主干载入和输出 收益:周期内主干内存释放(GC减少提高速度)优化细节:1.载入最优时机 2.输出内容压缩,速度加快 3.导出异步化 4.优化实践 1.利用可横向扩展的系统来分担纵向扩展系统的工作。2.流程中中间数据的优化处理。3.特殊化处理可以特殊处理的流程。4.从整体流程上考虑不同策略的消耗,提高整体处理能力。5.资源的快用快放,提高同一类资源利用率。6.不同阶段不同资源的互换,提高不同资源的利用率。附录 分析器:http:/code.taobao.org/p/top-analyzer/src/trunk/异步化:http:/code.taobao.org/p/PipeComet/src/trunk/REST,logdrager:git:/ 附图 附图 附图 附图