微服务技术的提出与应用对数据工程应用的开发和运维保障提供了新的手段和方法。在物联网和移动互联网时代,应用系统的开发对敏捷性、可靠性、高并发性以及可扩展性的要求更高。微服务技术整合了包括服务注册、保护、跟踪、消息驱动、集群配置与管理等应用系统开发和运维的一系列相关支撑技术,这些技术使得数据工程应用开发和运维能够满足新时代的需求。
本书从微服务与数据工程的相关概述出发,从工程项目的实际构建与开发的角度,重点阐述基于微服务的数据工程应用开发。本书各章主要内容如下。
第1章对微服务与数据工程进行概述,描述微服务相关技术栈的概念、内涵和主要内容,对数据工程涉及的相关概念,包括数据、信息、信息系统、数据获取、数据管理、数据分析等概念进行解释,同时也对数据工程的发展历程和与其他相关工程领域的关系进行剖析,最后介绍数据工程应用微服务的一般架构、应用开发的基本原则和流程。
第2章针对相关环境的配置和构建进行阐述,重点从工程开发环境和组件的实际应用角度,对环境的安装过程、配置流程进行介绍,为基于微服务的数据工程应用开发提供环境支撑。
第3章介绍基于微服务的数据工程应用服务运行与跟踪策略与方法,重点从服务应用的启动与运行、负载均衡和服务保护与跟踪几方面来描述微服务应用的实际开发和使用过程。
第4章介绍基于微服务的数据工程应用服务通信与配置,服务应用间的通信是数据工程应用中非常受关注并且急需解决的问题,尤其是针对分布在不同区域、不同业务领域的微服务数据工程应用,后台的数据同步、前端的数据请求接口交互、控制器之间的服务调用、权限数据交互等都需要采用大量的通信资源,采用消息中间件的机制来解决微服务数据工程应用的通信问题是目前较为普遍也是较有效的一种方法。
第5章介绍基于微服务的国产化数据库配置,对数据工程应用中各类型数据库的配置与开发进行详细描述。从实际使用的角度,对国内使用比较广泛的国产化数据库,包括达梦、神通、金仓、南大通用等数据库安装、数据库与微服务的系统集成等过程进行介绍。
第6章介绍基于微服务的数据汇聚系统开发实践,以具体应用为例,从一个具体的数据融合系统的开发出发,选择该系统中典型的用户权限与安全管理和数据融合两个模块,阐述基于微服务的数据工程设计和开发的一般流程。
第7章介绍基于微服务的数据获取与分析应用系统开发实践。微服务的架构不仅仅在同一平台内进行调用,通过本章的实例,说明了采用不同语言、不同平台也可以对基于微服务的数据工程应用进行集成。本章采用异构的系统开发平台,以典型的数据获取与分析为例,对基于微服务的数据工程应用设计与开发进行阐述。
编写本书的主要分工如下: 马武彬负责全书的编写和审核工作,王锐负责第1章和第4章的编写,吴亚辉负责第2章和第3章的编写,周浩浩负责第5~7章的编写。邓苏和戴超凡负责全书的内容架构设计以及后期审核工作。
感谢工程师王普周、曹荣兰、易辉、陈冲在本书所引用的工程代码实现和审核过程中所做的大量工作。本书的编写也得到了国防科技大学信息系统工程重点实验室的大力支持,感谢实验室全体成员为本书提供的帮助。
编者
2024年4月
第1章微服务与数据工程概述
1.1微服务概述
1.1.1Spring MVC
1.1.2Spring Boot
1.1.3Spring Cloud
1.2数据工程原理与应用概述
1.2.1相关概念
1.2.2数据工程发展历程
1.2.3数据工程与信息工程领域的关系
1.3基于微服务的数据工程应用开发
1.3.1数据工程应用微服务架构
1.3.2基于微服务的数据工程应用开发原则
1.3.3基于微服务的数据工程应用开发流程
第2章基于微服务的数据工程应用开发环境构建
2.1安装与配置Java环境
2.1.1Linux下JDK 1.8环境的安装与配置
2.1.2Windows下JDK 1.8环境的安装与配置
2.2安装与配置Eclipse
2.2.1Linux下Eclipse的安装与配置
2.2.2Windows下Eclipse的安装与配置
2.3安装与配置Maven
2.3.1Linux下Maven的安装与配置
2.3.2Windows下Maven的安装与配置
2.4安装与配置Spring Boot
2.5安装与配置Spring Cloud
2.5.1Eureka Server配置
2.5.2Eureka Client配置
2.5.3Feign配置
第3章基于微服务的数据工程应用服务运行与跟踪
3.1微服务启动与运行
3.1.1服务拆分
3.1.2服务注册与发现
3.1.3服务消费
3.2微服务负载均衡
3.2.1Ribbon负载均衡
3.2.2Feign应用负载均衡
3.3微服务保护
3.3.1服务熔断
3.3.2服务自动扩展
3.4微服务跟踪
3.4.1Zipkin微服务跟踪
3.4.2Sleuth微服务跟踪
3.4.3ELK微服务跟踪
第4章基于微服务的数据工程应用服务通信与配置
4.1微服务消息驱动
4.1.1RabbitMQ框架
4.1.2Apache Kafka框架
4.2微服务集群网关
4.2.1Nginx集群网关
4.2.2Zuul集群网关
4.3微服务集群配置
4.3.1Spring Cloud Config集群配置中心
4.3.2ZooKeeper集群管理
第5章基于微服务的国产自主可控数据库实践
5.1微服务通用数据库配置与部署
5.1.1离线安装MySQL
5.1.2集群配置整合应用
5.1.3配置MySQL
5.2达梦数据库的配置与部署
5.2.1安装简介
5.2.2硬件环境需求
5.2.3软件环境需求
5.2.4达梦数据库的安装
5.2.5达梦数据库的卸载
5.2.6许可证安装
5.3神通数据库配置与部署
5.3.1启动安装程序
5.3.2安装过程
5.3.3数据库配置
5.3.4停止数据库服务
5.4人大金仓数据库的配置与部署
5.4.1软硬件环境需求
5.4.2金仓数据库的安装
5.4.3数据库初始化
5.5GBase8s数据库配置与部署
5.5.1GBase8s数据库软硬件环境需求
5.5.2环境准备
5.5.3GBase8s数据库安装
5.5.4GBase8s数据库的卸载
5.5.5启动/停止数据库服务
第6章基于微服务的数据汇聚系统开发实践
6.1数据汇聚系统功能概述
6.1.1权限与安全
6.1.2数据融合
6.2用户权限与安全模块的设计与开发
6.2.1前端页面设计
6.2.2数据库结构设计
6.2.3权限与安全模块编码开发
6.3数据融合模块的设计与开发
6.3.1前端页面设计
6.3.2数据库结构设计
6.3.3模块编码开发
第7章数据获取与分析应用微服务开发与实践
7.1相关环境与配置
7.1.1Python3环境安装与配置
7.1.2Redis环境安装与配置
7.2数据分析应用服务架构设计
7.3数据库设计与实践
7.4数据获取微服务的开发与实践
7.5数据分析微服务开发与实践
7.5.1定义神经网络变量
7.5.2LSTM函数定义
7.5.3训练模型函数
7.5.4预测模型
7.5.5结果对比
参考文献