微服務技術(shù)的提出與應用對數(shù)據(jù)工程應用的開發(fā)和運維保障提供了新的手段和方法。在物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)時代,應用系統(tǒng)的開發(fā)對敏捷性、可靠性、高并發(fā)性以及可擴展性的要求更高。微服務技術(shù)整合了包括服務注冊、保護、跟蹤、消息驅(qū)動、集群配置與管理等應用系統(tǒng)開發(fā)和運維的一系列相關(guān)支撐技術(shù),這些技術(shù)使得數(shù)據(jù)工程應用開發(fā)和運維能夠滿足新時代的需求。
本書從微服務與數(shù)據(jù)工程的相關(guān)概述出發(fā),從工程項目的實際構(gòu)建與開發(fā)的角度,重點闡述基于微服務的數(shù)據(jù)工程應用開發(fā)。本書各章主要內(nèi)容如下。
第1章對微服務與數(shù)據(jù)工程進行概述,描述微服務相關(guān)技術(shù)棧的概念、內(nèi)涵和主要內(nèi)容,對數(shù)據(jù)工程涉及的相關(guān)概念,包括數(shù)據(jù)、信息、信息系統(tǒng)、數(shù)據(jù)獲取、數(shù)據(jù)管理、數(shù)據(jù)分析等概念進行解釋,同時也對數(shù)據(jù)工程的發(fā)展歷程和與其他相關(guān)工程領(lǐng)域的關(guān)系進行剖析,最后介紹數(shù)據(jù)工程應用微服務的一般架構(gòu)、應用開發(fā)的基本原則和流程。
第2章針對相關(guān)環(huán)境的配置和構(gòu)建進行闡述,重點從工程開發(fā)環(huán)境和組件的實際應用角度,對環(huán)境的安裝過程、配置流程進行介紹,為基于微服務的數(shù)據(jù)工程應用開發(fā)提供環(huán)境支撐。
第3章介紹基于微服務的數(shù)據(jù)工程應用服務運行與跟蹤策略與方法,重點從服務應用的啟動與運行、負載均衡和服務保護與跟蹤幾方面來描述微服務應用的實際開發(fā)和使用過程。
第4章介紹基于微服務的數(shù)據(jù)工程應用服務通信與配置,服務應用間的通信是數(shù)據(jù)工程應用中非常受關(guān)注并且急需解決的問題,尤其是針對分布在不同區(qū)域、不同業(yè)務領(lǐng)域的微服務數(shù)據(jù)工程應用,后臺的數(shù)據(jù)同步、前端的數(shù)據(jù)請求接口交互、控制器之間的服務調(diào)用、權(quán)限數(shù)據(jù)交互等都需要采用大量的通信資源,采用消息中間件的機制來解決微服務數(shù)據(jù)工程應用的通信問題是目前較為普遍也是較有效的一種方法。
第5章介紹基于微服務的國產(chǎn)化數(shù)據(jù)庫配置,對數(shù)據(jù)工程應用中各類型數(shù)據(jù)庫的配置與開發(fā)進行詳細描述。從實際使用的角度,對國內(nèi)使用比較廣泛的國產(chǎn)化數(shù)據(jù)庫,包括達夢、神通、金倉、南大通用等數(shù)據(jù)庫安裝、數(shù)據(jù)庫與微服務的系統(tǒng)集成等過程進行介紹。
第6章介紹基于微服務的數(shù)據(jù)匯聚系統(tǒng)開發(fā)實踐,以具體應用為例,從一個具體的數(shù)據(jù)融合系統(tǒng)的開發(fā)出發(fā),選擇該系統(tǒng)中典型的用戶權(quán)限與安全管理和數(shù)據(jù)融合兩個模塊,闡述基于微服務的數(shù)據(jù)工程設計和開發(fā)的一般流程。
第7章介紹基于微服務的數(shù)據(jù)獲取與分析應用系統(tǒng)開發(fā)實踐。微服務的架構(gòu)不僅僅在同一平臺內(nèi)進行調(diào)用,通過本章的實例,說明了采用不同語言、不同平臺也可以對基于微服務的數(shù)據(jù)工程應用進行集成。本章采用異構(gòu)的系統(tǒng)開發(fā)平臺,以典型的數(shù)據(jù)獲取與分析為例,對基于微服務的數(shù)據(jù)工程應用設計與開發(fā)進行闡述。
編寫本書的主要分工如下: 馬武彬負責全書的編寫和審核工作,王銳負責第1章和第4章的編寫,吳亞輝負責第2章和第3章的編寫,周浩浩負責第5~7章的編寫。鄧蘇和戴超凡負責全書的內(nèi)容架構(gòu)設計以及后期審核工作。
感謝工程師王普周、曹榮蘭、易輝、陳沖在本書所引用的工程代碼實現(xiàn)和審核過程中所做的大量工作。本書的編寫也得到了國防科技大學信息系統(tǒng)工程重點實驗室的大力支持,感謝實驗室全體成員為本書提供的幫助。
編者
2024年4月
第1章微服務與數(shù)據(jù)工程概述
1.1微服務概述
1.1.1Spring MVC
1.1.2Spring Boot
1.1.3Spring Cloud
1.2數(shù)據(jù)工程原理與應用概述
1.2.1相關(guān)概念
1.2.2數(shù)據(jù)工程發(fā)展歷程
1.2.3數(shù)據(jù)工程與信息工程領(lǐng)域的關(guān)系
1.3基于微服務的數(shù)據(jù)工程應用開發(fā)
1.3.1數(shù)據(jù)工程應用微服務架構(gòu)
1.3.2基于微服務的數(shù)據(jù)工程應用開發(fā)原則
1.3.3基于微服務的數(shù)據(jù)工程應用開發(fā)流程
第2章基于微服務的數(shù)據(jù)工程應用開發(fā)環(huán)境構(gòu)建
2.1安裝與配置Java環(huán)境
2.1.1Linux下JDK 1.8環(huán)境的安裝與配置
2.1.2Windows下JDK 1.8環(huán)境的安裝與配置
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章基于微服務的數(shù)據(jù)工程應用服務運行與跟蹤
3.1微服務啟動與運行
3.1.1服務拆分
3.1.2服務注冊與發(fā)現(xiàn)
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章基于微服務的數(shù)據(jù)工程應用服務通信與配置
4.1微服務消息驅(qū)動
4.1.1RabbitMQ框架
4.1.2Apache Kafka框架
4.2微服務集群網(wǎng)關(guān)
4.2.1Nginx集群網(wǎng)關(guān)
4.2.2Zuul集群網(wǎng)關(guān)
4.3微服務集群配置
4.3.1Spring Cloud Config集群配置中心
4.3.2ZooKeeper集群管理
第5章基于微服務的國產(chǎn)自主可控數(shù)據(jù)庫實踐
5.1微服務通用數(shù)據(jù)庫配置與部署
5.1.1離線安裝MySQL
5.1.2集群配置整合應用
5.1.3配置MySQL
5.2達夢數(shù)據(jù)庫的配置與部署
5.2.1安裝簡介
5.2.2硬件環(huán)境需求
5.2.3軟件環(huán)境需求
5.2.4達夢數(shù)據(jù)庫的安裝
5.2.5達夢數(shù)據(jù)庫的卸載
5.2.6許可證安裝
5.3神通數(shù)據(jù)庫配置與部署
5.3.1啟動安裝程序
5.3.2安裝過程
5.3.3數(shù)據(jù)庫配置
5.3.4停止數(shù)據(jù)庫服務
5.4人大金倉數(shù)據(jù)庫的配置與部署
5.4.1軟硬件環(huán)境需求
5.4.2金倉數(shù)據(jù)庫的安裝
5.4.3數(shù)據(jù)庫初始化
5.5GBase8s數(shù)據(jù)庫配置與部署
5.5.1GBase8s數(shù)據(jù)庫軟硬件環(huán)境需求
5.5.2環(huán)境準備
5.5.3GBase8s數(shù)據(jù)庫安裝
5.5.4GBase8s數(shù)據(jù)庫的卸載
5.5.5啟動/停止數(shù)據(jù)庫服務
第6章基于微服務的數(shù)據(jù)匯聚系統(tǒng)開發(fā)實踐
6.1數(shù)據(jù)匯聚系統(tǒng)功能概述
6.1.1權(quán)限與安全
6.1.2數(shù)據(jù)融合
6.2用戶權(quán)限與安全模塊的設計與開發(fā)
6.2.1前端頁面設計
6.2.2數(shù)據(jù)庫結(jié)構(gòu)設計
6.2.3權(quán)限與安全模塊編碼開發(fā)
6.3數(shù)據(jù)融合模塊的設計與開發(fā)
6.3.1前端頁面設計
6.3.2數(shù)據(jù)庫結(jié)構(gòu)設計
6.3.3模塊編碼開發(fā)
第7章數(shù)據(jù)獲取與分析應用微服務開發(fā)與實踐
7.1相關(guān)環(huán)境與配置
7.1.1Python3環(huán)境安裝與配置
7.1.2Redis環(huán)境安裝與配置
7.2數(shù)據(jù)分析應用服務架構(gòu)設計
7.3數(shù)據(jù)庫設計與實踐
7.4數(shù)據(jù)獲取微服務的開發(fā)與實踐
7.5數(shù)據(jù)分析微服務開發(fā)與實踐
7.5.1定義神經(jīng)網(wǎng)絡變量
7.5.2LSTM函數(shù)定義
7.5.3訓練模型函數(shù)
7.5.4預測模型
7.5.5結(jié)果對比
參考文獻