广告

五分钟趣谈| Flink引擎在电视业务运维中的开发介绍

时间:2024-06-14 阅读:
随着互联网电视业务高速发展,移动高清电视的用户规模不断扩大,已突破2.07亿,年业务收入超过100亿(截至2023年),是集团重点发展的项目之一。

导读

随着互联网电视业务高速发展,移动高清电视的用户规模不断扩大,已突破2.07亿,年业务收入超过100亿(截至2023年),是集团重点发展的项目之一。在渗透率持续提升的背景下,如何盘活存量用户,深挖用户价值是当前工作重点。

互联网电视业务高速增长的同时,售后服务和运维工作量也在激增,用户侧故障若不能及时处理,必然引发投诉升级和满意度下降。因此,在移动高清电视领域,监控系统的及时性对于保证用户体验和服务质量至关重要。Apache Flink作为一个高性能、可扩展的实时处理引擎,为开发实时高效的移动高清电视监控系统提供了可能。本文将探讨如何利用Flink引擎设计和实现一个移动高清电视实时监控系统,从基础知识入手,介绍系统架构和开发,希望可以为读者提供一定的帮助和启发。

01 基础知识

在移动高清电视监控领域,实时性是一个关键要求。监控系统需要能够即时收集和处理播放器的状态信息(如缓冲时间、花屏时间、播放质量、错误信息等),以便及时发现并解决问题。

图1  Flink 数据流处理图

在深入讨论Flink引擎的开发和应用之前,我们先了解一些基础知识。Apache Flink是一个开源的流处理框架,用于处理和分析实时数据流。它支持高吞吐量、低延迟以及事件时间处理,并能够保证状态的一致性和容错性,监控告警时效性可达秒级别。这些特性使得Flink成为移动高清电视实时监控系统的理想选择。

Apache Flink的流式处理引擎的整体架构如图所示。

JobManager: 主要作用是协调 Flink 应用程序的分布式执行它决定何时调度下一个 task(或一组 task)、协调 checkpoint、对完成的 task 或执行失败做出反应、并且协调从失败中恢复等等。

TaskManager执行作业流的 task,也称为 worker,并且缓存和交换数据流。在一个集群中,必须始终至少有一个 TaskManager。在 TaskManager 中资源调度的最小单位是 task slot。TaskManager 中 task slot 的数量表示并发处理 task 的数量。

2  Flink 组件架构图

02 系统架构

移动高清电视实时监控系统的架构通常包括以下几个关键部分:

3  移动高清电视实时监控系统大数据架构

数据源(数据采集)

机顶盒apk埋点数据:移动设备的客户端会收集用户观看高清电视时的各种指标,如视频加载时间、播放卡顿次数、视频质量、视频内容、URL等,并将这些数据实时发送到后端系统。

其他关系型数据库:机顶盒位置信息、排障助手测试相关数据、媒资信息等存储在其他关系型数据库中,需要通过Flink-CDC同步到实时数仓Doris中,为异常事件检测提供数据支撑。

数据传输

采集到的数据通过消息队列(Apache Kafka)传输,以解耦数据产生和处理过程,保证系统的可伸缩性和高可用性。

实时处理引擎

Flink引擎负责从消息队列接收数据,并进行实时处理。处理过程包括数据清洗、聚合、窗口计算、异常检测等。

通过Flink-CEP动态规则机制,将实时数据和模型预测的数据对比,并对异常值触发实时告警,推送给运维处理。

实时数仓

处理后的数据存储在数据湖Doris中,通过业务智能工具或定制的仪表盘进行展示,以便运维人员能够实时监控系统状态和用户体验。

数据应用

系统可以根据预设的规则自动触发告警,并通过邮件、短信或其它方式通知运维人员。同时,根据监控结果,运维人员可以快速响应并解决问题。

03 Flink数据处理实现方式

整体逻辑架构如下图所示,通过数据采集层,可以采集分省媒资数据,机顶盒播放数据等。数据处理层主要进行流式数据整合、数据智能分析等处理,最终将数据存储到实时数仓Doris中。数据管理层主要功能是数据治理、数据安全、数据ETL等,扮演着数据管控和数据价值实现的角色。数据应用层主要是对数据的深度分析、快速查询和可视化展示,从而更好地实现数据驱动的业务目标,主要是实现了排障助手实时监测、生成用户收视画像等。本章主要讲述Flink实时数据处理层

3  移动高清电视实时监控系统逻辑架构图

Flink流式数据处理

1接入Kafka Souce源

数据通过机顶盒APK上报到Kafka之后,Flink通过KafkaSource将数据接入处理。编写Flink消费Kafka场景应用的相关Scala 代码如下:

在上述示例展示了如何构建 KafkaSource 来消费 “basicConf.getTopics()” 最近offset的数据, 使用消费组 “actualGroupId”,并且将 Kafka 消息体为PlayEventDeserialization类定义的类型。

2多流Broadcast join

大部分情况下,我们需要对数据进行关联,当数据量不是很大时,可以通过广播维表进行关联。具体的做法是,利用Broadcast State将维度数据流广播到下游所有task中。通过与我们的事件流connect,然后在后续的process 算子中进行操作即可。具体可以参见下面的示例。

3Sink到Doris

经过清洗、窗口计算、归一化等一些列Transform操作处理后的数据,最后会Sink到Apache Doris中。Doris是一个基于 MPP 架构的高性能、实时分析型数据库,仅需秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。相关Scala代码如下所示。

04 未来展望

2023 年 2 月,《数字中国建设整体布局规划》指出,畅通数据资源大循环是数字中国建设的两大基础之一,要构建国家数据管理体制机制,健全各级数据统筹管理机构,推动公共数据汇聚利用,释放商业数据价值潜能。由此可见,通过大数据技术汇聚用户播放行为数据,实现对移动高清电视质量进行及时有效的监测,在广电数字化建设中扮演着重要的角色。为了实现这一目标,后续将运用AI、大数据和边缘计算技术,从以下三个方面提升移动高清电视运维监控系统的能力。

边缘计算:通过将数据处理逻辑部署到机顶盒,接近数据源头,可以减少数据传输时间,提高处理速度。

人工智能集成:利用机器学习和人工智能技术,监控系统能够更准确地预测和识别问题,并自动优化用户体验。

个性化体验:监控数据可以用于分析用户行为,提供个性化的质差用户画像,精准实时定位用户质差问题,以便运维人员快速响应并解决问题,进一步提升用户满意度。

总体来说,随着技术的进步,移动高清电视实时监控系统将变得更加及时、智能、高效,为用户提供更优质的观看体验。而Flink作为一个强大的实时数据处理引擎,在这一进程中将发挥重要作用。

本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
您可能感兴趣的文章
相关推荐
    广告
    近期热点
    广告
    广告
    可能感兴趣的话题
    广告
    广告
    向右滑动:上一篇 向左滑动:下一篇 我知道了