李祥 金安安
摘? ?要:微服務(wù)架構(gòu)因其服務(wù)獨(dú)立開(kāi)發(fā)、獨(dú)立部署、獨(dú)立維護(hù)、可擴(kuò)展性高等眾多優(yōu)點(diǎn)成為當(dāng)前網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)首選架構(gòu)。文章針對(duì)現(xiàn)有實(shí)驗(yàn)室管理平臺(tái)的缺點(diǎn),對(duì)微服務(wù)架構(gòu)在實(shí)驗(yàn)室管理平臺(tái)上的應(yīng)用進(jìn)行充分研究;在分析軟件構(gòu)架演變的基礎(chǔ)上,以實(shí)驗(yàn)室科研管理為實(shí)際業(yè)務(wù)場(chǎng)景,結(jié)合開(kāi)發(fā)與設(shè)計(jì)實(shí)驗(yàn)室管理平臺(tái)實(shí)踐,對(duì)Spring Cloud微服務(wù)架構(gòu)進(jìn)行研究,實(shí)現(xiàn)實(shí)驗(yàn)室管理軟件的Docker平臺(tái)應(yīng)用部署,對(duì)同類設(shè)計(jì)與開(kāi)發(fā)具有良好的借鑒作用。
關(guān)鍵詞:實(shí)驗(yàn)管理系統(tǒng);微服務(wù);Spring Cloud
中圖分類號(hào):TP315;G203 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2021)01-0055-05
一、引言
高校實(shí)驗(yàn)室是進(jìn)行實(shí)驗(yàn)教學(xué)、開(kāi)展科學(xué)研究、培育學(xué)生創(chuàng)新能力、提高學(xué)生綜合素質(zhì)的重要基地,也是孵化高水平研究成果、服務(wù)經(jīng)濟(jì)建設(shè)的主要場(chǎng)所。高等院校的實(shí)驗(yàn)教學(xué)是培養(yǎng)學(xué)生創(chuàng)新精神和實(shí)踐動(dòng)手能力直接、關(guān)鍵的環(huán)節(jié),其優(yōu)勢(shì)在于使學(xué)生把所學(xué)的理論和實(shí)踐相結(jié)合,著力培養(yǎng)學(xué)生創(chuàng)新精神和知識(shí)運(yùn)用能力。它既有知識(shí)傳承,又有動(dòng)手實(shí)踐,遵循認(rèn)知規(guī)律,讓學(xué)生在科學(xué)實(shí)驗(yàn)中親身去發(fā)現(xiàn)和認(rèn)識(shí)科學(xué)理論,并檢驗(yàn)所獲得的理論知識(shí)。
當(dāng)前高校實(shí)驗(yàn)室普遍存在著因?qū)嶒?yàn)課時(shí)過(guò)少和封閉式管理,沒(méi)有充分發(fā)揮其培養(yǎng)學(xué)生創(chuàng)新精神和實(shí)踐能力的重要作用的問(wèn)題。如何利用實(shí)驗(yàn)教學(xué)資源與已建成的基礎(chǔ)實(shí)驗(yàn)平臺(tái)、專業(yè)基礎(chǔ)實(shí)驗(yàn)平臺(tái)和重點(diǎn)學(xué)科研究實(shí)驗(yàn)平臺(tái)共同構(gòu)建一個(gè)完整實(shí)驗(yàn)室體系,是一項(xiàng)值得重要扶持和發(fā)展的重點(diǎn)課題。因此,高校實(shí)驗(yàn)室開(kāi)放共享體系的構(gòu)建,對(duì)培養(yǎng)學(xué)生的創(chuàng)新精神和實(shí)踐動(dòng)手能力具有重要的意義和深遠(yuǎn)的影響。
微服務(wù)是將獨(dú)立的應(yīng)用系統(tǒng)開(kāi)發(fā)分解為一組小型服務(wù)的開(kāi)發(fā),其中每個(gè)小型服務(wù)都以獨(dú)立進(jìn)程運(yùn)行,并采用如HTTP資源API這樣輕量機(jī)制來(lái)相互通信的新型應(yīng)用開(kāi)發(fā)機(jī)制。近年來(lái),微服務(wù)架構(gòu)以其獨(dú)立部署、高效、松耦合、高內(nèi)聚、擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)成為目前火熱的后臺(tái)開(kāi)發(fā)架構(gòu)之一。本文旨在通過(guò)以實(shí)驗(yàn)室管理系統(tǒng)設(shè)計(jì)開(kāi)發(fā)為實(shí)際業(yè)務(wù)場(chǎng)景,在對(duì)微服務(wù)架構(gòu)的整體模式進(jìn)行深入分析的基礎(chǔ)上,完成微服務(wù)系統(tǒng)架構(gòu)的搭建與部署工作。
二、Spring Cloud微服務(wù)框架簡(jiǎn)介
Spring Cloud是一套用于搭建微服務(wù)架構(gòu)應(yīng)用的框架,由Pivotal團(tuán)隊(duì)提供,實(shí)現(xiàn)了配置管理、服務(wù)發(fā)現(xiàn)、智能路由、負(fù)載均衡、熔斷器等功能。該框架簡(jiǎn)化了Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等工作,使開(kāi)發(fā)者可以專注于Spring應(yīng)用的開(kāi)發(fā),無(wú)需過(guò)多關(guān)注XML的配置以及特定配置方法。Spring Cloud主要包括Spring Cloud Netflix和Spring Cloud OpenFeign兩種典型框架。
Spring Cloud Netflix是Spring Cloud中的一套框架,它包含了解決服務(wù)注冊(cè)與發(fā)現(xiàn),網(wǎng)關(guān)、負(fù)載均衡、服務(wù)之間通信、斷路器等微服務(wù)架構(gòu)所需解決問(wèn)題的眾多組件。Spring Cloud OpenFeign框架則只需要定義好接口,就可以將原來(lái)通過(guò)Http的請(qǐng)求調(diào)用轉(zhuǎn)化為調(diào)用定義好接口的方法,使客戶端可以很容易調(diào)用http服務(wù),為微服務(wù)架構(gòu)下服務(wù)之間的調(diào)用提供了更加便捷的應(yīng)用解決方案。
三、系統(tǒng)微服務(wù)構(gòu)架的設(shè)計(jì)與實(shí)現(xiàn)
1.微服務(wù)架構(gòu)設(shè)計(jì)
不同于單體架構(gòu),引入微服務(wù)后,系統(tǒng)整體架構(gòu)提升了復(fù)雜度,結(jié)合Spring Cloud體系結(jié)構(gòu),本文設(shè)計(jì)了本系統(tǒng)微服務(wù)架構(gòu),如圖1所示。服務(wù)注冊(cè)中心是微服務(wù)架構(gòu)最核心和最基礎(chǔ)的服務(wù),使用Eureka解決。實(shí)驗(yàn)管理系統(tǒng)拆分的三個(gè)服務(wù)(人員服務(wù)user、成果服務(wù)achievement、設(shè)備服務(wù)device)作為業(yè)務(wù)模塊,使用Spring Boot構(gòu)建。拆分為多個(gè)微服務(wù)后,使用Zuul組件作為服務(wù)網(wǎng)關(guān)統(tǒng)一管理服務(wù)的入口。每個(gè)服務(wù)都有自己的配置文件,過(guò)于分散,不易管理。故使用Spring Cloud Config這一組件作為配置中心來(lái)統(tǒng)一管理所有應(yīng)用的相關(guān)配置文件。在數(shù)據(jù)存儲(chǔ)方面,關(guān)系型數(shù)據(jù)庫(kù)主要使用開(kāi)源的MySQL。
在實(shí)驗(yàn)室管理系統(tǒng)的分析設(shè)計(jì)過(guò)程中,為充分發(fā)揮云平臺(tái)中的微服務(wù)應(yīng)用效率,將通用的人員管理(user)、成果管理(achievement)以及設(shè)備管理(device)三個(gè)模塊劃分為三個(gè)微服務(wù)模塊:①u(mài)ser服務(wù)管理實(shí)驗(yàn)室人員信息,包括添加、修改、查詢等功能。②achievement服務(wù)管理實(shí)驗(yàn)室的科研成果??蒲谐晒ㄖ鳌⒄撐摹@?、研究項(xiàng)目四種類型。③device服務(wù)管理實(shí)驗(yàn)室的設(shè)備信息,包括實(shí)驗(yàn)室設(shè)備信息的錄入、修改、刪除等。實(shí)驗(yàn)室人員可以申請(qǐng)實(shí)驗(yàn)室的設(shè)備使用,但申請(qǐng)后應(yīng)得到管理員的審核方可使用。
2.微服務(wù)構(gòu)架技術(shù)實(shí)現(xiàn)
在實(shí)現(xiàn)角度,每個(gè)微服務(wù)共有的操作大概分為三步,包括引入依賴完成pom文件、編寫(xiě)啟動(dòng)類以及用ymal語(yǔ)法編寫(xiě)yml配置文件等部分。
在實(shí)驗(yàn)室管理系統(tǒng)中,系統(tǒng)用戶管理微服務(wù)模塊,主要提供用戶注冊(cè)、用戶登錄、用戶個(gè)人信息管理、用戶地址管理等服務(wù)。在設(shè)計(jì)過(guò)程中,考慮到用戶管理中心其他微服務(wù)也會(huì)調(diào)用,所以先做聚合工程UserManage,此模塊包含2個(gè)子工程:
- leyou-user-interface:包含實(shí)體類及對(duì)外接口;
- leyou-user-service:包括業(yè)務(wù)邏輯和內(nèi)部接口。
具體結(jié)構(gòu)如圖2所示:
(1)模塊邏輯設(shè)計(jì)
- 請(qǐng)求方式:GET;
- 請(qǐng)求路徑:/check/{param}/{type};
- 請(qǐng)求參數(shù):param,type;
- 返回結(jié)果:true或false。
(2)關(guān)鍵代碼分析
//**
*用戶注冊(cè)
*@param user
*@param code
*@return
*/
@ PostMapping("register")
public ResponseEntity
userService.register(user,code);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
/**
*校驗(yàn)數(shù)據(jù)是否可用
*@param data
*@param type
*@return
*/
@GetMapping("/check/{data}/{type}")
Public ResponseEntity
Boolean boo=this.userService.checkData(data,type);
if(boo==null){
Return ResponseEntity.status(HttpStatus.BAD_REQUEST).Build();
}
Return ResponseEntity.ok(boo);
/**
* 發(fā)送驗(yàn)證碼
* @param phone
* @return
*/
3.微服務(wù)構(gòu)架高可用優(yōu)化
在微服務(wù)架構(gòu)中,高可用通過(guò)部署多個(gè)實(shí)例來(lái)實(shí)現(xiàn)。如Eureka Server微服務(wù)構(gòu)架中,可以啟動(dòng)多個(gè)Eureka Server實(shí)例,這些Eureka Server實(shí)例之間以相互注冊(cè)的方式來(lái)實(shí)現(xiàn)服務(wù)的高可用。
所有Eureka Server節(jié)點(diǎn)在服務(wù)提供者的同時(shí),也在服務(wù)消費(fèi)者。實(shí)現(xiàn)步驟如下:
(1)新建兩個(gè)配置文件application-e1.yml和application-e2.yml。
(a)application-e1.yml作為實(shí)例一的配置文件,將service-url指向?qū)嵗?。?nèi)容如下:
eureka:
client:
service-url:
defaultZone:? http://eureka2:8762/eureka/
spring:
application:
name: eureka
server:
port: 8761
(b)application-e2.yml作為實(shí)例二的配置文件,將service-url指向?qū)嵗?。?nèi)容如下:
eureka:
client:
service-url:
defaultZone:? http://eureka1:8761/eureka/
spring:
application:
name: eureka
server:
port: 8762
(2)然后使用rancher通過(guò)參數(shù)spring.profiles.active指定配置文件分別啟動(dòng)兩個(gè)eureka實(shí)例。
四、系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)(見(jiàn)圖3)
本文所針對(duì)的實(shí)驗(yàn)室管理系統(tǒng)開(kāi)發(fā)以所在學(xué)校的科研實(shí)驗(yàn)室管理為主要分析對(duì)象,主要包含人員管理、成果管理和設(shè)備管理等三部分內(nèi)容,實(shí)現(xiàn)開(kāi)放管理。
1.人員管理
主要負(fù)責(zé)實(shí)驗(yàn)室人員的信息管理,包括管理員和普通人員兩類角色。功能主要分為:①查詢。所有人都可以查詢個(gè)人信息。管理員擁有最高權(quán)限,可以錄入、修改和刪除人員信息,并且可以查詢所有人員信息。普通人員只可以查詢自己個(gè)人信息。②添加、修改和刪除。管理員可以添加、修改和刪除所有人的個(gè)人信息,而個(gè)人不可以執(zhí)行這些操作。③查詢統(tǒng)計(jì)個(gè)人成果。在人員管理模塊,可以指定某條人員信息后查詢?cè)撊藛T的所有科研成果信息。
在該頁(yè)面中會(huì)加載被編輯人員原來(lái)的詳細(xì)信息。顯示的信息字段與添加人員信息的字段一致。但是姓名字段不可修改,并且該頁(yè)面隱藏了人員id字段。其中性別和導(dǎo)師字段輸入框均為下拉框。在加載頁(yè)面時(shí)會(huì)初始化加載數(shù)據(jù)。在頁(yè)面的最下面有兩個(gè)按鈕,點(diǎn)擊返回直接返回到人員管理查詢頁(yè)面,并會(huì)刷新修改之后的數(shù)據(jù)。修改數(shù)據(jù)后點(diǎn)擊保存,數(shù)據(jù)包括隱藏字段人員id將會(huì)以json格式傳給user服務(wù)。在服務(wù)端將會(huì)根據(jù)人員id更新人員信息。所有人的人員信息以一個(gè)表格的形式展示,包括姓名、專業(yè)、崗位、導(dǎo)師、研究方向、教育背景、介紹、聯(lián)系方式、操作。其中操作字段顯示的是人員信息的編輯按鈕。點(diǎn)擊編輯按鈕,頁(yè)面將跳轉(zhuǎn)到人員信息的編輯頁(yè)面。人員信息查詢可以根據(jù)查詢姓名進(jìn)行查詢,輸入姓名后,點(diǎn)擊查詢,Get請(qǐng)求將會(huì)攜帶姓名信息,以及默認(rèn)的每頁(yè)顯示頁(yè)數(shù)和當(dāng)前頁(yè)信息到后臺(tái)。(見(jiàn)圖4)
2.成果管理
負(fù)責(zé)所有實(shí)驗(yàn)室人員的科研成果信息維護(hù)。包括著作、論文、專利以及科研項(xiàng)目。每條成果信息必須包含實(shí)驗(yàn)室人員id,該id對(duì)應(yīng)人員管理部分中人員信息的id,邏輯上是成果信息的外鍵。成果信息主要由管理人員維護(hù),管理員可以對(duì)所有成果信息進(jìn)行增加、修改、刪除以及查詢。而普通人員只擁有查詢所有人科研成果的權(quán)限。
查詢結(jié)果頁(yè)面以表格信息展示著作信息,包括序列號(hào)、書(shū)名、類型、作者、出版社、出版時(shí)間、描述、操作等列項(xiàng)。其中操作列中顯示著作的編輯按鈕。在表格的上方可以輸入查詢條件,可以根據(jù)書(shū)名查詢書(shū)籍信息。當(dāng)點(diǎn)擊著作菜單項(xiàng)時(shí),會(huì)跳轉(zhuǎn)到圖5所示頁(yè)面。第一頁(yè)的書(shū)籍信息會(huì)自動(dòng)加載。輸入查詢條件,點(diǎn)擊搜索框,頁(yè)面發(fā)送請(qǐng)求到achievement服務(wù)進(jìn)行查詢。
3.設(shè)備管理
負(fù)責(zé)實(shí)驗(yàn)室的設(shè)備信息管理,處理實(shí)驗(yàn)室的設(shè)備信息維護(hù),包括增、刪、改、查等。還應(yīng)該維護(hù)實(shí)驗(yàn)室設(shè)備的借用情況。實(shí)驗(yàn)室人員使用實(shí)驗(yàn)室設(shè)備之前必須提交申請(qǐng),等待管理員通過(guò)審核后方可使用。
實(shí)驗(yàn)室信息管理頁(yè)面的添加、修改和查詢與前面相似。在這里介紹一下設(shè)備申請(qǐng)功能。點(diǎn)擊設(shè)備信息管理頁(yè)面的申請(qǐng)按鈕,將攜帶設(shè)備的編號(hào)跳轉(zhuǎn)到設(shè)備申請(qǐng)頁(yè)面,在該頁(yè)面首先會(huì)根據(jù)url攜帶的設(shè)備編號(hào)參數(shù),加載設(shè)備的名稱和庫(kù)存數(shù)量,這兩個(gè)字段都設(shè)置為只讀。申請(qǐng)者填寫(xiě)申請(qǐng)數(shù)量后點(diǎn)擊保存提交后將數(shù)據(jù)發(fā)送給device服務(wù),device服務(wù)生成申請(qǐng)編號(hào)后保存到device_apply表中,等待管理員審核,同時(shí),申請(qǐng)信息將會(huì)保存到device_apply表中的申請(qǐng)信息,作為操作日志備查。(見(jiàn)圖6)
五、系統(tǒng)微服務(wù)架構(gòu)配置
根據(jù)系統(tǒng)設(shè)計(jì),基于Spring Boot應(yīng)用框架,以Spring Cloud技術(shù)棧作為微服務(wù)的架構(gòu)配置流程包括以下幾個(gè)方面內(nèi)容:
1.服務(wù)注冊(cè)中心
服務(wù)注冊(cè)中心使用Eureka組件。Eureka包含服務(wù)端和客戶端。除了注冊(cè)中心,其它的服務(wù)都可以在主類中加上注解@EnableEurekaServer注冊(cè)到eureka server端。并且通過(guò)設(shè)置參數(shù)defaultZone注冊(cè)到eureka注冊(cè)中心。DefaultZone屬性可以是eureka注冊(cè)中心多實(shí)例中的任何一個(gè)。
2.配置中心搭建
Spring Cloud Config默認(rèn)是采用Git存儲(chǔ)配置。實(shí)現(xiàn)過(guò)程如下:
(1)添加config server和eureka client依賴。引入eureka客戶端依賴,是因?yàn)樾枰獙onfig-server注冊(cè)到eureka服務(wù)端進(jìn)入微服務(wù)治理體系,以實(shí)現(xiàn)配置中心的高可用。
(2)主類同時(shí)添加注解@EnableDiscoveryClient和@EnableConfigServer。Config服務(wù)既作為Eureka的客戶端,又作為Config的服務(wù)端。
(3)創(chuàng)建Git倉(cāng)庫(kù)。這里使用GitHub作為倉(cāng)庫(kù)。
(4)修改配置文件。配置Git倉(cāng)庫(kù)的相關(guān)信息。至此完成Spring Cloud Config的引入。
3.服務(wù)網(wǎng)關(guān)搭建
引入Spring Cloud Zuul步驟:
(1)添加org.springframework.cloudspring-cloud-starter-netflix-zuul依賴。
(2)通過(guò)在主類中添加注解@EnableZuulProxy啟用Zuul組件。
(3)配置路由規(guī)則。Zuul默認(rèn)配置的路由規(guī)則是,所有服務(wù)暴露的端口都是可訪問(wèn)的。在本系統(tǒng)配置中希望ahievement是不直接對(duì)外提供服務(wù)的,只是通過(guò)user服務(wù)調(diào)用,所以需要禁用默認(rèn)的路由規(guī)則。禁用配置如下:
zuul:
ignored-services: achievement
(4)設(shè)置過(guò)濾。Zuul不僅可以路由,還具有過(guò)濾功能。使用Zuul,主要是使用它提供的過(guò)濾器,Zuul中提供了PRE、ROUTING、POST、ERROR四種過(guò)濾器類型。在這里調(diào)用user服務(wù),需要驗(yàn)證請(qǐng)求中是否攜帶令牌token。如未攜帶該請(qǐng)求不通過(guò)。需要在api-gateway中實(shí)現(xiàn)一個(gè)前置過(guò)濾器。該過(guò)濾器需實(shí)現(xiàn)ZuulFilter接口,filterType()方法返回前置過(guò)濾器PRE_TYPE類型,filterOrder()返回的是過(guò)濾器執(zhí)行的順序位置。run()方法里是需要執(zhí)行的操作,當(dāng)請(qǐng)求中不攜帶token時(shí),請(qǐng)求將得不到執(zhí)行。過(guò)濾邏輯的具體實(shí)現(xiàn)代碼如下:
RequestContext currentContext = RequestContext.getCurrentContext();
HttpServletRequest request = currentContext.getRequest();
String token = request.getParameter("token");
if(StringUtils.isEmpty(token)){
currentContext.setSendZuulResponse(false);
currentContext.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());
}
return null;
4.斷路器搭建
(1)添加spring-cloud-starter-netflix-zuul依賴。
(2)主類添加注解@EnableCircuitBreaker以引入斷路器。
(3)Hystrix組件是一個(gè)容錯(cuò)框架,可以通過(guò)注解@HystrixCommand配置,參數(shù)fallbackMethod設(shè)置回退降級(jí)處理方法。
(4)在user服務(wù)中定義findAchievementById方法的回退降級(jí)處理方法fallback。實(shí)現(xiàn)過(guò)程如下:
引入Hystrix-dashboard。Hystrix-dashboard是Hystrix一款可以對(duì)Hystrix進(jìn)行實(shí)時(shí)監(jiān)控的組件。通過(guò)Hystrix-dashborad可以清晰明了地查看請(qǐng)求響應(yīng)時(shí)間、請(qǐng)求成功率等數(shù)據(jù)。
5.微服務(wù)通信
Spring Cloud中使用Feign框架來(lái)解決通信問(wèn)題?,F(xiàn)以根據(jù)實(shí)驗(yàn)室人員id查看該實(shí)驗(yàn)室人員科研成果這一業(yè)務(wù)為例說(shuō)明如何配置微服務(wù)通信。
(1)首先創(chuàng)建一個(gè)著作信息BookInfo實(shí)體,通過(guò)ORM框架映射到數(shù)據(jù)庫(kù)。通過(guò)注解@Entity注明該類為數(shù)據(jù)庫(kù)表映射類。類名和數(shù)據(jù)庫(kù)表對(duì)應(yīng)。注解@Id注明表的主鍵。
(2)ORM框架使用Spring Data Jpa。只需要編寫(xiě)一個(gè)繼承自JpaRepository的接口就能完成數(shù)據(jù)的訪問(wèn)。
(3)通過(guò)對(duì)外暴露的接口,可根據(jù)作者id查詢著作的接口進(jìn)行實(shí)現(xiàn)。
6.微服務(wù)鏈路追蹤
Spring Cloud項(xiàng)目的Spring Cloud Sleuth為服務(wù)之間提供了鏈路追蹤,以了解服務(wù)耗時(shí)、網(wǎng)絡(luò)深度、調(diào)用次數(shù)等信息。配置模式如下:
(1)先運(yùn)行一個(gè)zipkin server。通過(guò)docker可以快速運(yùn)行zipkin。
(2)在user和achievement服務(wù)中添加spring-cloud-starter-zipkin依賴。
(3)在bootstrap.yml文件中添加配置。
六、結(jié)束語(yǔ)
現(xiàn)在微服務(wù)架構(gòu)是非常炙熱的話題。在本項(xiàng)目軟件開(kāi)發(fā)中,采用了Spring Boot作為單個(gè)服務(wù)應(yīng)用框架,以Spring Cloud為技術(shù)棧搭建微服務(wù)架構(gòu),實(shí)現(xiàn)整個(gè)項(xiàng)目的微服務(wù)架構(gòu)系統(tǒng)搭建,以及基于Docker容器技術(shù)的系統(tǒng)部署,對(duì)微服務(wù)軟件應(yīng)用開(kāi)發(fā)整個(gè)流程進(jìn)行了系統(tǒng)的實(shí)踐。
微服務(wù)雖然能解決單體應(yīng)用膨脹、耦合度高、開(kāi)發(fā)效率低下等問(wèn)題,但是同樣也會(huì)帶來(lái)部署和維護(hù)越來(lái)越復(fù)雜的問(wèn)題,[14]而且如果沒(méi)有豐富的實(shí)踐經(jīng)驗(yàn),對(duì)服務(wù)拆分的粒度也是很難把控的。因此,在實(shí)際開(kāi)發(fā)中,應(yīng)根據(jù)實(shí)際業(yè)務(wù)需要來(lái)選擇采用哪種構(gòu)架來(lái)進(jìn)行軟件應(yīng)用開(kāi)發(fā)、實(shí)現(xiàn)單體架構(gòu)和微服務(wù)架構(gòu)有機(jī)融合。
參考文獻(xiàn):
[1]辛園園,鈕俊,謝志軍,張開(kāi)樂(lè),毛昕怡.微服務(wù)體系結(jié)構(gòu)實(shí)現(xiàn)框架綜述[J].計(jì)算機(jī)工程與應(yīng)用,2018(19):10-17.
[2]戴勝.微服務(wù)架構(gòu)應(yīng)用前景探析[J].花炮科技與市場(chǎng),2018(4):67-70.
[3]趙然,朱小勇.微服務(wù)架構(gòu)評(píng)述[J].網(wǎng)絡(luò)新媒體技術(shù),2019(1):58-61.
[4]劉瀚璟.基于微服務(wù)架構(gòu)的導(dǎo)師遴選和研究生招生系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:濟(jì)南大學(xué),2018.
[5]孫宇,周綱.基于微服務(wù)架構(gòu)的資源發(fā)現(xiàn)系統(tǒng)平臺(tái)構(gòu)建研究[J].中國(guó)圖書(shū)館學(xué)報(bào),2020(1).
[6]姚剛,蔡鳳翔,李英浩.淺談微服務(wù)架構(gòu)的網(wǎng)站開(kāi)發(fā)技術(shù)[J].信息系統(tǒng)工程,2019(12):69-70.
[7]李娜.基于Spring Cloud微服務(wù)架構(gòu)的應(yīng)用[J].電子技術(shù)與軟件工程,2019(12):142.
[8]黃強(qiáng)文,曾丹.基于Spring Cloud和Docker的分布式微服務(wù)架構(gòu)設(shè)計(jì)[J].微型電腦應(yīng)用,2019(6):98-101.
[9]Cerny. Aspect-oriented challenges in system integration with microservices, SOA and IoT[J].Enterprise Information Systems,2019.
[10]梅璇.基于Spring Cloud的微服務(wù)調(diào)用研究[D].武漢:武漢理工大學(xué),2018.
[11]Ru Wang,Muhammad Imran,Kashif Saleem.A microservice recommendation mechanism based on mobile architecture[J].Journal of Network and Computer Applications,2019.
[12]隋亞楠.基于Spring Cloud技術(shù)的生產(chǎn)管理云平臺(tái)的研究[D].天津:天津大學(xué),2018.
[13]周立.Spring Cloud與Docker微服務(wù)架構(gòu)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2017.5.
[14]章仕鋒,潘善亮.Docker技術(shù)在微服務(wù)中的應(yīng)用[J].電子技術(shù)與軟件工程,2019(4):164.
(編輯:王天鵬)