基于Flink实时、批量计算的可视化交易监控平台

(整期优先)网络出版时间:2021-08-02
/ 3

基于 Flink实时、批量计算的可视化交易监控平台

孙琳

中国银联股份有限公司 技术开发中心 上海 201201

直线 171

[内容摘要] 获取实时交易流水后,根据交易类型、地区等维度实时计算出当日累计交易数据,再批量计算出交易趋势、各交易类型的占比图等,并通过可视化平台展示出来。

[关 键 词] flink;实时、批量计算;可视化;

直线 172

引言

随着互联网的崛起,越来越多的系统在运行,各系统的交易情况想要掌握只能通过数据库统计来完成,那么如何能够实时的、更加直观的看到每个系统的交易量、交易趋势、各个维度的交易情况等信息,就成了亟需解决的问题。

一、Flink简介

  1. 什么是Flink

Apache Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Apache Flink 擅长处理无界和有界数据集,精确的时间控制和状态化使得 Flink 的运行时(runtime)能够运行任何处理无界流的应用。有界流则由一些专为固定大小数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。[1]

  1. 为什么选Flink

较为常见的大数据计算引擎除了Flink外还有MapReduce、Spark、Storm等,其中MapReduce和Spark属于离线计算、批量计算引擎,适用于T+1对账、数据报表统计等场景;Flink和Storm属于实时计算、流与批量并存的计算引擎,适用于实时统计、监控等场景。

本文介绍的可视化交易监控平台有实时计算的需求,所以排除掉MapReduce和Spark。而相比Strom,一方面Flink 能在所有常见集群环境中运行,更加的灵活、稳定;一方面Flink能以内存速度和任意规模进行计算,更加的快速、实时;另一方面Flink提供了丰富的建语义支持,包括事件时间模式、watermark支持、迟到数据处理、处理时间模式等,在乱序大数据处理上更有优势。


二、平台实现方案

根据业务上的需求以及可视化的实时性要求,将该可视化交易监视平台从架构上分为数据过滤、数据计算、数据持久化、数据服务API、可视化5个模块。

画布 174

  1. 数据过滤模块

被监听的业务系统将交易流水数据实时推送到可视化交易监视平台的数据采集kafka中,数据过滤模块负责监听数据采集kafka,并根据约定的报文格式解析交易信息后,根据一定的过滤规则剔除掉无效交易,最后将预处理过的交易信息推送到数据过滤kafka中。

  1. 数据计算模块

数据计算模块负责监听数据过滤kafka的数据,根据业务系统不同的统计、展示需求,先通过流计算流程计算出中间数据并推送到数据计算kafka中,再通过批计算流程从数据计算kafka中拉取中间数据进行加工、计算,得出的最终结果数据也推送到数据计算kafka中。

  1. 流计算流程

流处理主要适用于时间间隔比较短的处理模式,比如全国交易分布散点图。为保证计算的实时性及灵活性,流计算只会处理最大颗粒度的数据及最小粒度的数据,如果后续需要进行个性化操作及计算,数据服务API模块需要自行对数据进行加工。

以可视化交易监视平台中地铁行业交易数据监控为例,根据可视化模块的展示需求,将交易数据根据交易所在地区、产品类型进行区分:

  • 交易所在地区根据省、市、站点三个信息维度进行划分;

  • 根据交易流水中几个字段的值进行划分;

流处理会根据以上规则计算出最小粒度数据,例如可视化交易监视平台中地铁行业交易流水数据通过流处理后的计算结果为:某市某站点某产品类型下当日的累计交易笔数、某市某站点某产品类型下当日的累计交易金额,从而保证计算结果的实时性;同时也会计算出最大颗粒度数据,例如该系统当日累计交易总笔数、当日累计交易总金额、当日交易成功率等,方便对系统整体情况进行实时可视化展示。

所有流处理计算的结果都会被推送到数据计算kafka中,待数据计算批处理模块和数据服务API模块消费。

  1. 批计算流程

批处理只需对固定时间内的流处理计算结果数据进行汇总、累加计算即可,其数据来源为流处理的计算结果(数据计算kafka),其中批处理计算时间间隔可在flink管理台中进行配置。

批处理会根据前端可视化展示的需求计算出最小颗粒度数据,以可视化交易监视平台中地铁行业交易数据监控为例,可视化模块需展示最近2小时、最近24个小时、最近1个月的交易趋势图,那么批处理的计算结果分为:某市某站点某产品类型下5分钟为一时间段的累计交易笔数、某市某站点某产品类型下5分钟为一时间段的累计交易金额,用于展示最近2小时的交易趋势信息;同时为了方便对系统整体交易趋势进行更加实时的可视化展示,流处理模块也会计算出最大颗粒度数据,包括某市某站点某产品类型下24小时为一时间段的累计交易笔数、某市某站点某产品类型下24小时为一时间段的累计交易金额,用于展示最近1个月的交易趋势信息。

所有批处理计算的结果也会被推送到数据计算kafka中,待数据服务API模块消费。

  1. 数据服务API模块

数据服务API模块根据可视化模块的展示需求,基于数据计算模块的计算结果(数据计算kafka)进行二次加工后,将结果数据返回给可视化模块进行展示。

以可视化交易监视平台为例,数据服务API模块向可视化模块提供以下数据:

  1. 系统当日累计交易总金额、当日累计交易总笔数、当日交易成功率等总体数据:数据服务API模块每2秒从数据计算kafka中读取一次,并将数据直接返回给可视化模块;

  2. 根据可视化模块传递的参数值,基于流处理和批处理计算出的结果数据,每30秒从数据计算kafka读取一次,然后经过二次计算得出结果数据,并将结果返回可视化模块:

  • 当可视化模块传来的参数城市为全国、产品类型为全部时,数据服务API模块从数据计算kafka中取出全国各省当日累计交易总金额、全国各省当日累计交易总笔数、全国近2小时(5分钟为一时间段)的交易累计笔数、全国近2小时(5分钟为一时间段)的交易累计金额、全国近1个月(24小时为一时间段)的交易累计笔数、全国近1个月(24小时为一时间段)的交易累计金额等数据,并根据全国近2小时(5分钟为一时间段)的交易累计笔数、全国近2小时(5分钟为一时间段)的交易累计金额信息二次计算出全国近24小时(1小时为一时间段)的交易累计笔数、全国近24小时(1小时为一时间段)的交易累计金额;

  • 当可视化模块传来的参数城市为南京、线路为4号线、产品类型为applePay时,数据服务API模块从数据计算kafka中取出城市为南京、线路为4号线、产品类型为applePay下每一个站点的当日累计交易金额/当日累计交易笔数,城市为南京、线路为4号线、产品类型为applePay下每一个站点近2小时(5分钟为一时间段)的交易累计笔数/交易累计金额,城市为南京、线路为4号线、产品类型为applePay下每一个站点近1个月(24小时为一时间段)的交易累计笔数/交易累计金额等数据,并根据城市为南京、线路为4号线、产品类型为applePay下每一个站点近2小时(5分钟为一时间段)的交易累计笔数/交易累计金额信息二次计算出城市为南京、线路为4号线、产品类型为applePay下每一个站点近24小时(1小时为一时间段)的交易累计笔数/交易累计金额;

  1. 可视化模块

可视化模块可以根据业务需求,将系统的各维度数据直观的展示出来。

  1. 每2秒钟刷新一次当日累计交易金额、当日累计交易笔数、当日交易成功率;

  2. 每30秒根据当前页面位置刷新一次全国、某省、某市、某线路、某站点的当日累计交易笔数、当日累计交易金额、产品类型占比图、最近2小时/24小时/1个月交易趋势图等;

  3. 每30秒刷新一次营销、场景拓展成果等管理台配置的辅助数据;

  1. 数据持久化模块

数据持久化模块每天定时从数据计算kafka中将数据计算模块得出的数据持久化到mysql数据库中。


技术选型

  1. 后端各模块

Spring:架构基础

Kafka:实现流水数据存储

Netty:提供SOCKET服务

Flink: 流处理模块和批处理模块

Mybatis、c3p0:实现数据库访问

  1. 前端可视化模块

图表设计:echarts + 百度API

数据请求方式:ajax

数据格式:json

  1. 数据库

Mysql


[参考文献]

[1] Apache Flink.Apache Flink



A visualization transaction monitor platform that based on the realtime and batch calculation functions of Flink

SUN LIN

(Development Center,China UnionPay,ShangHai 201201,China)


Biographies: SUN LIN (1985 -), famale, in 2011 graduated from the TongJi University, Master, currently working China UnionPay Co., Ltd. Technology Development Center.

Abstract: The Real time calculation starts at recieving the live transactions and deliveries results with different dimensions, such as Transaction type, area and etc. The batch calculation

starts afterwards and deliveries the ratio charts of transaction trends, transaction types and etc. All the results and charts will be displayed through the visualization platform.

Key words: Flink; Real time and batch calculation; Visualization;

[作者简介] 孙琳(1985— ),女,辽宁鞍山人, 2011年硕士毕业于同济大学,目前就职于中国银联股份有限公司技术开发中心。