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