微服務技術的提出與應用對數據工程應用的開發和運維保障提供了新的手段和方法。在物聯網和移動互聯網時代,應用系統的開發對敏捷性、可靠性、高并發性以及可擴展性的要求更高。微服務技術整合了包括服務注冊、保護、跟蹤、消息驅動、集群配置與管理等應用系統開發和運維的一系列相關支撐技術,這些技術使得數據工程應用開發和運維能夠滿足新時代的需求。
本書從微服務與數據工程的相關概述出發,從工程項目的實際構建與開發的角度,重點闡述基于微服務的數據工程應用開發。本書各章主要內容如下。
第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結果對比
參考文獻