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