《Apache Flink 案例集(2022版)》——5.数字化转型——翼支付Apache Flink 在翼支付的实践应用(下)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 《Apache Flink 案例集(2022版)》——5.数字化转型——翼支付Apache Flink 在翼支付的实践应用(下)

《Apache Flink 案例集(2022版)》——5.数字化转型——翼支付Apache Flink 在翼支付的实践应用(上) https://developer.aliyun.com/article/1227825



生产实践

在实践过程中翼支付遇到了很多挑战,总结起来主要是业务 State 数据一致性、指标重复计算问题、动态规则配置以及全链路监控监控问题。  


首先是指标作业升级过程中,通过指标引擎配置的 job State 数据一致性问题。早期指标作业是通过手动开发,部分业务 State 存储在 HDFS 中,指标引擎配置的 job 没有单独管理业务 State 的数据,老的任务迁移到平台过程中就会遇到数据一致性问题。

 

解决思路是扩展老的计算程序,读取全量 State 数据存储到外部,然后停止老任务。指标引擎配置的作业从指定的 offset 进行数据计算,然后从外部存储补齐原有的指标数据。


image.png


上图展了作业升级的流Task open function 的时读取业务 State 数据存储到部。如是 KeyedStateState 法获取当前 task State 数据,要将 State 进行,然后获取所State 数据引擎。作业通过配置指对应的 offset通过数据的方式进行计算,从而完成数据


image.png


其次是指标作业在不断新增过程中存在的痛点,多个作业重复消费同一个 Kafka 导致上游消费压力大以及指标重复计算的问题。解决方法是对所有作业进行统一优化,对所有消息源进行统一预清洗,按照业务过程分发到对应的数据域 Topic 中。对指标进行统一的口径管理,保证指标不重复计算。目前没有对实时指标进行分层处理,主要为了避免在计算链路过长从而影响业务的时效性。


image.png


第三是Flink CEP 存在的问题。实时决策的模块是通过 Flink CEP 进行规则匹配,最初是通过程序编码的方式实现规则的匹配,然而随着规则越来越多,不便于维护,开发成本也随之增加。Flink CEP 无法进行动态的规则配置以及多个规则并行决策。针对上述问题,翼支付对 Flink CEP 进行了扩展开发来解决规则动态配置以及多个规则决策的问题。


image.png


上图展示了 Flink CEP 扩展开发的逻辑架构。用户通过 RuleManager 配置规则并将规则变更事件发布到 Zookeeper 中,RuleListener 监听到事件的变更后,若是新增规则,则会通过 groovy 动态语言编译生成 RulePattern 实例。随着规则的增多,CEP operator 线程处理效率会下降,需要通过把规则分组绑定到对应的 Worker 上来加速规则处理。CEP operator 线程接收到事件后会分发给所有 Worker,Worker 线程处理完后通过队列发布到 CEP operator 线程,最后发布到下游。


image.png


最后是数据全链路监控的问题。数据流从收集端经过 Flume 传输,再到消息中心指标计算,然后发布到下游的实时决策,不允许大量的数据丢失以及数据延迟。基于以上诉求,需要对整体数据链路进行监控,采用 prometheus + grafana 进行 metrics 的收集以及告警。这里主要针对 Flume 消息中间件进行消息堆积以及丢失的监控。Flink 指标计算主要监控运行状态以及背压情况,下游监控 CEP 决策的时间。对数据链路的监控能够帮助运维快速定位并解决线上的问题。


未来规划

未来,翼支付计划在以下几个方面进行持续探索:  


第一,数据库增量采集的方案统一。目前 MySQL 的采集是使用 Canal 实现的,未来计划使用 Flink CDC 来针对 Oracle 和 MySQL 进行统一的增量采集;


第二,离线实时的批流融合。目前离线数仓通过 Spark SQL 计算,实时数仓使用 Flink SQL 计算,维护两套元数据以及不同的指标口径使得日常工作负荷很大,未来希望使用 Flink 来完成批流一体计算;


第三,Flink 作业自动扩容缩容。目前 Flink 无法进行自动扩容缩容,早晚流量变化较大,会导致较多的资源浪费,计算能力不足的时候只能通过人工进行作业扩容。未来希望基于 Flink 来实现自动扩容,降低运维成本。


image.png

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
5天前
|
SQL 存储 分布式计算
阿里巴巴瓴羊基于 Flink 实时计算的优化和实践
本⽂整理⾃阿里云智能集团技术专家王柳焮⽼师在 Flink Forward Asia 2023 中平台建设专场的分享。
310 2
阿里巴巴瓴羊基于 Flink 实时计算的优化和实践
|
5天前
|
SQL 大数据 BI
从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践
从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践
|
5天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
5天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的应用
【5月更文挑战第1天】 随着企业加速其数字化转型的步伐,云原生技术作为推动创新和灵活性的关键力量,正变得日益重要。本文深入探讨了云原生技术如何为企业提供高度可扩展、灵活且安全的解决方案,以及它如何支持企业在不断变化的市场环境中保持竞争力。通过对容器化、微服务架构、持续集成/持续部署(CI/CD)等核心技术的剖析,揭示了它们如何共同塑造一个更加敏捷和响应迅速的开发环境。文章还讨论了企业在采纳云原生技术过程中面临的挑战,并提出了一系列策略建议,以帮助企业顺利过渡到云原生模式。
|
5天前
|
机器学习/深度学习 Cloud Native Devops
深度学习在图像识别中的应用与挑战构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的关键力量。尤其在图像识别任务中,深度神经网络通过学习海量数据中的复杂模式,显著提高了识别的准确率和效率。然而,尽管取得了显著成就,深度学习在图像识别应用过程中仍面临一系列挑战,包括模型泛化能力、计算资源消耗以及对抗性攻击等。本文旨在探讨深度学习技术在图像识别领域的应用现状,并分析其面临的主要技术挑战和未来的发展方向。 【4月更文挑战第30天】 随着企业加速迈向数字化时代,传统的IT架构正面临重大挑战。云原生技术以其灵活性、可扩展性和敏捷性,成为推动企业转型的重要力量。本文将探讨云原生技术的基本原理,分
|
5天前
|
监控 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的应用
【4月更文挑战第30天】 随着云计算技术的成熟,云原生(Cloud-Native)架构已成为推动企业数字化转型的关键驱动力。本文将深入探讨云原生技术的核心组件、实施策略以及它们如何促进企业的敏捷性、可扩展性和创新能力。通过案例分析,我们将揭示云原生实践的最佳模式和面临的挑战,为追求技术前沿的企业提供可行的转型蓝图。
|
5天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的应用
【4月更文挑战第28天】 随着企业加速数字化转型,云原生架构作为支持快速、可靠和灵活部署的关键技术,正成为推动创新的重要驱动力。本文将深入探讨云原生技术的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps实践,并分析这些技术如何助力企业实现敏捷运营和提升市场竞争力。通过具体案例分析,揭示云原生解决方案如何优化资源利用,加强系统稳定性,并促进团队间的高效协作。
|
5天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的应用
【4月更文挑战第27天】 随着企业加速迈向数字化时代,传统的IT架构已不足以支撑快速变化的市场需求。云原生架构,作为一种新兴的设计理念和技术集合,正在成为推动企业敏捷性、可扩展性和创新能力的关键因素。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析其在企业转型中的作用及实施策略。通过实际案例,我们将揭示如何利用云原生技术构建灵活、高效的业务系统,以及如何管理这一过程以实现持续创新和竞争优势。
|
5天前
|
供应链 安全 物联网
未来交织:新兴技术在数字化转型中的融合与应用
【4月更文挑战第26天】 随着数字化进程的加速,新兴技术如区块链、物联网(IoT)、虚拟现实(VR)等正成为推动社会进步和产业变革的关键力量。本文将深入探讨这些技术的发展趋势,分析它们在不同领域的具体应用场景,并讨论这些技术如何相互交织,共同塑造未来社会的面貌。通过案例分析和前瞻性思考,文章旨在为读者提供一个关于新技术融合应用的全面视角。
|
5天前
|
传感器 存储 缓存
[尚硅谷flink学习笔记] 实战案例TopN 问题
这段内容是关于如何使用Apache Flink解决实时统计水位传感器数据中,在一定时间窗口内出现次数最多的水位问题,即"Top N"问题。首先,介绍了一个使用滑动窗口的简单实现,通过收集传感器数据,按照水位计数,然后排序并输出前两名。接着,提出了全窗口和优化方案,其中优化包括按键分区(按水位vc分组)、开窗操作(增量聚合计算count)和过程函数处理(聚合并排序输出Top N结果)。最后,给出了一个使用`KeyedProcessFunction`进行优化的示例代码,通过按键by窗口结束时间,确保每个窗口的所有数据到达后再进行处理,提高了效率。

热门文章

最新文章

  • 1
    实时计算 Flink版操作报错合集之遇到报错:"An OperatorEvent from an OperatorCoordinator to a task was lost. Triggering task failover to ensure consistency." ,该怎么办
    10
  • 2
    实时计算 Flink版操作报错合集之在连接Oracle 19c时报错如何解决
    15
  • 3
    实时计算 Flink版操作报错合集之写入 Kafka 报错 "Failed to send data to Kafka: Failed to allocate memory within the configured max blocking time 60000 ms",该怎么解决
    11
  • 4
    实时计算 Flink版操作报错合集之报错显示“Unsupported SQL query! sqlUpdate() only accepts SQL statements of type INSERT and DELETE"是什么意思
    10
  • 5
    实时计算 Flink版操作报错合集之报错io.debezium.DebeziumException: The db history topic or its content is fully or partially missing. Please check database history topic configuration and re-execute the snapshot. 是什么原因
    13
  • 6
    实时计算 Flink版操作报错合集之本地打成jar包,运行报错,idea运行不报错,是什么导致的
    10
  • 7
    实时计算 Flink版操作报错合集之使用 Event Time Temporal Join 关联多个 HBase 后,Kafka 数据的某个字段变为 null 是什么原因导致的
    12
  • 8
    实时计算 Flink版操作报错合集之使用 Event Time Temporal Join 关联多个 HBase 后,Kafka 数据的某个字段变为 null 是什么原因导致的
    18
  • 9
    实时计算 Flink版操作报错合集之查询sqlserver ,全量阶段出现报错如何解决
    11
  • 10
    实时计算 Flink版操作报错合集之执行Flink job,报错“Could not execute SQL statement. Reason:org.apache.flink.table.api.ValidationException: One or more required options are missing”,该怎么办
    9
  • 相关产品

  • 实时计算 Flink版
  • 推荐镜像

    更多