上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

罗强-腾讯新闻基于Flink+PipeLine模式的实践与应用.pdf

编号:101795 PDF 29页 14.16MB 下载积分:VIP专享
下载报告请您先登录!

罗强-腾讯新闻基于Flink+PipeLine模式的实践与应用.pdf

1、罗强/腾讯高级工程师 Tencent Senior Engineer腾讯新闻基于腾讯新闻基于Flink+PipeLineFlink+PipeLine模式的实践与应用模式的实践与应用The Practice and Application of Tencent News Based on Flink+pipeline mode背景介绍背景介绍整体架构整体架构PipeLinePipeLine模式设计模式设计 高可用高可用/稳定设计稳定设计 未来规划未来规划#1#2#3#4#5Background introduction Overall architecturePipeline pattern d

2、esignHigh availability and highstability designFuture#1#1项目背景项目背景Background introduction业务背景腾讯网腾讯体育腾讯新闻新闻电商新闻教育游戏联运阅文小说小游戏维表数据知识付费新闻微信插件新闻QQ插件收入数据行为数据平台多业务广数据杂Business background项目背景原有实时系统面临的问题新需求接入需要3-5天代码业务强耦合,复用性低需要到服务器部署上下线应用开发成本高需求排不上简单功能难实现每周投入0.5-1天服务器运维自行搭建4台服务器、扩容难、资源吃紧系统黑盒,异常监控难自行搭建服务器频繁占用

3、人力运维storm 算子能力弱、灵活性差延时高、不支持SQL不支持时间窗口业务发展功能越来越复杂实时性要求越来越高维护成本高灵活性不足Project background迁移技术挑战业务逻辑不变情况下平稳切换需求多变、复杂快速接入数据/代码高质量高可用性、代码灵活低耦合数据复用率高减少存储及计算资源Technical challengesSmooth switching withunchanged businesslogic我们是如何解决?Demand is changeableand complex,how toaccess quicklyHigh quality data and code

4、.High availability,flexible code andlow coupling are requiredHigh data reuse rate,reducingstorage and computing resources2021.4 正式上线#2 2整体架构整体架构Overall architecture架构图ODS层原始数据上报HDFSETL实时数仓数据接入新闻请求新闻曝光新闻曝光游戏联运新闻电商系统监控存储/接入TDWHDFSImpalaTDWHDFSImpala数据仓库存储计算层Meta信息DWD层明细数据存储/接入数据微聚合等计算层Meta/维表DWS层应用数据存

5、储/接入维度计算等计算层MysqlClickhouseRedisImpala数据应用后端等业务系统OceanusTube MQFlinkTube MQTube MQOceanusFlinkOceanusFlinkArchitecture实时数据应用Data application 用户广告实时点击序列特征 用户广告负反馈特征序列 实时用户游戏标签特征 数据实时清洗、归并、结构化 实时数据入库 异常用户数据检测实时数仓实时业务实时报表实时监控实时风控在线学习Flink 游戏用户授权 用户登录态信息处理分发 广告实时停单 流量抖动监控 用户行为监控预警 PV/UV等用户访问数据相关图表 交易订单报

6、表、流量趋势图等 搜索热词等实时排行榜#3 3PipeLinePipeLine 模式设计模式设计Pipeline pattern designFlink+PipeLine 设计思想PipeLinePipeLine:为自定义管道流水线,可以将任务的处理分解为若干个处理阶段,即前一个处理单元的结果也是第二个模块的输入,实现计算作业流水线化。目标目标:充分利用Flink资源提高计算效率,使得代码结构层次更加清晰、代码解耦、模块高复用成为可能。FlinkFlink Runtime Runtime sourcesourcetransformation/processtransformation/proc

7、esssinksinkFlink+pipeline design idea实现方式Implementation method该PipeLine的执行流程:initprocesssideOutmonitorsink流复制时序图UML类图BaseProcedure interface check:配置参数检查 setConfig:设置任务的配置参数Set configuration parameters for tasksCheck configurationFlink+PipeLine 计算管道示意图initprocesssinksideStream 侧输出流mainStream主输出流上报的数

8、据数据输出Input streamprocessSideOutorcustomProcessprocessMonitororqpm等sinkcustomProcess数据输出customProcesssink数据输出orcustomProcessSideOutsink数据输出customProcessMonitorqpm等mainStreamCustomsideStreamCustom分流用户定制化处理逻辑任务初始化全局参数配置tubeSchematic diagram of Flink+pipeline主处理逻辑分流qpm统计等监控模块qpm统计等监控模块 Init完成当前任务的初始化,如参

9、数全局化、流的初始化 xProcess核心的功能处理模块 xSideOut完成流的复制、切分、过滤等操作 xMonitor流量监控模块 Sink数据流数据,如写redis、clickhouse等应用举例伪代码伪代码PipeLine代码 可读性提升复用性提升Application examples模块封装Application examples 基础封装 流处理类流数据的读写流操作算子监控及告警Tube MQ读取Redis等读写重试机制测试字节数据流的克隆流的切分分流数据通用ETL流通用SQLQPM计算流量阈值监控异常分级告警.错误分级错误码集日志UDFDate文件ContainsUDFMd5U

10、DF一对多KV解析格式转换日期计算Json文件读写CSV文件读写Protobuf处理 通用工具Flink+PipeLine 模式的特点Characteristics of flink+pipeline mode模块复用高流程固化编程灵活流复用高测试高效代码逻辑验证方便High module reuse rateProcess solidification,Flexible programmingHigh stream reuse rateEfficient testing and convenient code testing防止计算流程混乱减少重复代码开发高效利用存储/计算资源保证线上、线下

11、测试逻辑一致Reduce repetitive code developmentPrevent confusion of calculation processEfficient utilization of storage and computing resourcesEnsure that the logic of online and offline test codes is consistent#3 3高可用高可用/稳定设计稳定设计High availability and high stability design提高系统高可用/稳定方法Methods to improve sys

12、tem high availability and stability冗余设计流量控制容错机制故障恢复监控告警日志可追踪熔断机制Redundancy designflow controlcircuit breakerfault toleranceFault recoveryMonitoringAlarm重试机制Retry mechanismLog traceable高可用/稳定设计运行监控SLA 保障集群的分布式设计无任何单点,全链路监控和快速的故障自愈能力平台提供能力举例我们做了什么?指标告警作业/JobManager/TaskManager/Task 粒度指标,以及容器 POD 精确的CP

13、U/内存指标异常捕获、分级告警Snapshot 失败、JobManager/TaskManager 的 CPU、内存异常可视化监控2、异常throw最上层,并利用trycatch捕获代码异常,报警至企业微信群What did we do?参数分层管理1、常见的异常沉淀为一套错误码集,并分ERROR、WARN、INFO级告警High availability and high stability design参数广播动态更新1、Sink端写数据失败重试,防止数据丢失重试机制高效本地测试异常捕获、分级告警Exception capture and hierarchical alarmTaskMan

14、agerTrycatch(Exception e)SendError()Task SlottubeMQ业务计算任务TaskManager监控报警任务报警内容:近一分钟累计报警12229条,请相关同事注意!Time:2021-10-17 12:11:00Level:ERRORProject Name:任务名Project ID:任务IDType:MYSQL_SEND_ERROR,错误描述errMsg:错误堆栈信息,原始数据等企业微信Objects.hash(报警内容)60秒聚合窗口统计窗口内相同报警次数输入捕获task中运行代码的异常错误等级Trycatch(Exception e)SendEr

15、ror()Task SlotTrycatch(Exception e)SendError()Task SlotsourcekeybyTask SlottimeWindow(60)aggregatesink输出ERRORWARNINFO错误码错误描述异常描述数据告警分类告警内容e.getMessage()HttpFlinkFlink 异常报警避免影响业务处理时效,报错不直接处理,而是抓取异常信息转发消息队列,再由单独的Flink监控任务进行异常处理解决原storm告警盲区,分钟级主动推送 告警聚合根据业务及错误编码分钟级聚合,避免告警疲劳 告警分层不同等级的报警,发送不同企业微信群配置参数优先级

16、管理 参数重复配置时,高优先级配置覆盖低优先级配置低Configuration parameter priority managementlow高high代码base.properties全局配置文件代码x.properties任务私有配置文件七彩石参数配置平台Oceanus思想:根据配置的影响面、调整频率、敏感性等区分管理全局参数私有参数敏感参数动态参数如:报警地址、zk地址等如:业务SQL、输入数据地址等如:redis登录密码、数据库连接密码等如:并行数、重试次数、开关阈值等 配置灵活度高 代码与参数解耦 保密强参数动态更新BroadCastDataMeta信息Connect定时更新Par

17、ameter dynamic update Meta信息变更无需重启任务 Meta信息冗余备份、异常时自动切换mysqlzookeeper高效本地测试线上代码测试代码业务逻辑不动SourceProcess抓取线上字节码,转化为流Sink终端输出Online codeTest codeEfficient local testing 开发提效 测试数据真实 线上和测试代码一致重试机制Queue写成功?重试次数上限?Queue容量上限?自定义输出函数FunctionFunction R apply(T t);R apply(T t);NONOYESYES告警告警Queue空?QueueYESYESN

18、ONO优先输出Queue中数据连接、网络等问题造成写失败 防止数据丢失Retry mechanism最佳实践点击数据负反馈数据交易数据数据解析、特征抽取Data analysis and feature extractionTube MQ特征构造Feature Construction数据解析、特征抽取Data analysis and feature extractionProtobuf3重试机制Hash保证数据原子性模型预估Feature Construction业务一业务二阅读文章数据点击广告数据广告曝光数据重试机制重试机制数据实时特征计算模型Hash保证数据原子性 共用一套特征构造模块

19、广告点击序列特征负反馈特征文章点击序列特征搜索热词特征订单交易特征 重试机制保障不丢数据Best practices存储总结业务逻辑不变情况下平稳切换需求多变、复杂快速接入数据/代码高质量高可用性、代码灵活低耦合数据复用率高减少存储及计算资源SummarySmooth switching withunchanged businesslogicDemand is changeableand complex,how toaccess quicklyHigh quality data and code.High availability,flexible code andlow coupling are requiredHigh data reuse rate,reducingstorage and computing resources异常捕获、分级告警异常捕获、分级告警参数分层管理参数分层管理参数广播动态更新参数广播动态更新重试机制重试机制高效本地测试高效本地测试PipeLinePipeLine模式模式#4 4未来计划未来计划Future未来规划实时模型训练实时特征更多业务推广代码设计思想推广与中台合作流批一体应用#1#2#3Future work

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(罗强-腾讯新闻基于Flink+PipeLine模式的实践与应用.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部