一、开发环境
此项目的开发环境如下:
macOS Big Sur
(不影响)IntelliJ IDEA
jdk 1.8.0_271
Maven 3.6.1
Flink 1.12.2
Kafka 2.0.0
MySQL 5.1.49
Vue Cli 4.5.12
Vue 2.5.2
Element-UI 2.15.1
二、相关技术
项目以Vue + Spring Boot
的形式实现前后端的分离。同时,前端使用Element-UI + Echarts + Vue
实现页面的绘制,使用Vue router
实现页面的跳转,使用Ajax
实现数据的请求与动态修改。后端通过Maven
进行包的管理,并整体使用Spring Boot
框架进行搭建。将Kafka
作为数据源,使用Flink
进行流数据的实时处理,并通过JDBC
将结果存入MySQL
数据库。然后项目通过间隔性地访问数据库实现数据的动态查询。图示如下:
三、系统架构
项目的可运行程序主要分为三个部分:Vue
、Spring Boot
项目Client
以及Flink
项目Server
。Vue
项目作为分离的前端与用户进行交互,并且可以向Client
发送和请求数据。Client
通过Controller
与Web
进行交互,将Web
发送的数据发送到Kafka
,并在MySQL
中查询Web
所请求的数据。Server
以流的形式从Kafka
接收数据,并通过Flink API
进行实时的计算并将计算结果存入MySQL
的不同表中供Client
查询。图示如下:
四、分包解释
项目主目录cn.edu.neu.movie
下除了三个入口类还分有五个包:
bean
:数据库查询数据的封装类web
:只供前端使用的数据封装类
controller
:用于连接前端并与前端交互的控制器类service
:业务类client
:Client
程序的相关业务接口impl
:Client
程序相关业务的具体实现
server
:Server
程序的相关业务实现sim
:用于模拟生产评分数据相关业务实现
dao
:数据库的交互类util
:工具类