Spring Cloud應(yīng)用如何接入CSE
更新!CSE 現(xiàn)在提供了 spring-cloud-huawei?模塊用于spring Cloud服務(wù)快速接入CSE。 詳情請(qǐng)參考幫助文檔,另外官網(wǎng)上也有一個(gè)快速入門(mén)的demo可供參考。
.
.
.
以下為舊版內(nèi)容
限時(shí)免費(fèi)體驗(yàn)華為云微服務(wù)
本章節(jié)通過(guò)一個(gè)實(shí)際的案例,說(shuō)明Spring Cloud應(yīng)用如何經(jīng)過(guò)少量的配置修改,快速接入CSE。
原始Spring Cloud應(yīng)用-:
https://github.com/huawei-microservice-demo/SpringCloudIntegration/tree/master/springcloud-sample
該Spring Cloud應(yīng)用提供了3個(gè)項(xiàng)目:
eureka-server提供注冊(cè)發(fā)現(xiàn)能力。
springcloud-provider服務(wù)提供者,該服務(wù)提供了名稱(chēng)為HelloService的REST接口。
springcloud-consumer服務(wù)消費(fèi)者,該服務(wù)也提供了名稱(chēng)為HelloService的REST接口,其實(shí)現(xiàn)通過(guò)Feign調(diào)用springcloud-provider的REST接口。
改造后的應(yīng)用具備如下能力和變化:
使用CSE提供的服務(wù)中心作為注冊(cè)發(fā)現(xiàn)服務(wù);
使用CSE提供的配置中心作為動(dòng)態(tài)配置服務(wù),可以通過(guò)配置中心管理公共配置;
業(yè)務(wù)的其他邏輯不發(fā)生任何變化,寫(xiě)代碼的方式也不發(fā)生變化。開(kāi)發(fā)者仍然可以按照原來(lái)的開(kāi)發(fā)習(xí)慣書(shū)寫(xiě)業(yè)務(wù)代碼。
CSE為Spring Cloud應(yīng)用提供了非常簡(jiǎn)單的接入方式,開(kāi)發(fā)者只需要修改依賴(lài)關(guān)系和少量的配置,就可以啟用服務(wù)中心和配置中心客戶(hù)端連接功能,將Spring Cloud應(yīng)用作為一個(gè)CSE的微服務(wù)注冊(cè)到服務(wù)中心和使用動(dòng)態(tài)配置能力。
修改依賴(lài)關(guān)系。
將Spring Cloud中對(duì)于earuka的依賴(lài)換成CSE的依賴(lài)。
Eureka的依賴(lài):開(kāi)發(fā)者一般會(huì)使用spring-cloud-starter-eureka。spring-cloud-starter-eureka-server是作為注冊(cè)服務(wù)使用的,替換服務(wù)中心后不需要繼續(xù)使用。
修改后的依賴(lài):
Consumer使用ribbon。
如果Spring Cloud應(yīng)用代碼中使用了Ribbon組件,它默認(rèn)的實(shí)現(xiàn)是通過(guò)Eureka的,需要在application.yml中增如下配置:
helloprovider: ??ribbon: ????NIWSServerListClassName:?org.apache.servicecomb.springboot.starter.discovery.ServiceCombServerList
經(jīng)過(guò)上面步驟,就完成了Spring Cloud應(yīng)用接入CSE的全部整改。開(kāi)發(fā)者可以將應(yīng)用打包為容器鏡像,在公有云上進(jìn)行部署。
建議開(kāi)發(fā)者在pom.xml中引入依賴(lài)的dependencyManagement,以便更好的管理使用的三方件,防止沖突。
dependencyManagement不會(huì)往程序里面增加依賴(lài)關(guān)系,但是可以幫助開(kāi)發(fā)者更好的管理依賴(lài)關(guān)系,對(duì)于解決三方軟件沖突非常有用。詳細(xì)原理描述可以參考“使用maven管理復(fù)雜依賴(lài)關(guān)系的技巧"。
將應(yīng)用制作為鏡像,部署到公有云,部署平臺(tái)會(huì)對(duì)應(yīng)用增加一些認(rèn)證關(guān)系的配置,以完成對(duì)于應(yīng)用的安全認(rèn)證,這些過(guò)程是由部署平臺(tái)自動(dòng)完成的。CSE的服務(wù)中心和配置中心通過(guò)api gateway開(kāi)放了REST接口,支持開(kāi)發(fā)者在公網(wǎng)環(huán)境使用其服務(wù),這樣給開(kāi)發(fā)者的線下開(kāi)發(fā)帶來(lái)大量的便利。為了線下使用CSE的服務(wù)中心和配置中心,開(kāi)發(fā)者需要在application.yml中增加認(rèn)證信息,認(rèn)證信息包含AS/SK,可以從公有云帳號(hào)的"我的憑證”獲取。
cse: ??credentials: ????accessKey:?your?access?key ????secretKey:?your?secret?key ????akskCustomCipher:?default
有些開(kāi)發(fā)者需要通過(guò)代理服務(wù)器訪問(wèn)公有云,也可以通過(guò)設(shè)置代理來(lái)實(shí)現(xiàn):
cse: ??proxy: ????enable:?true ????host:?your?proxy?server ????port:?your?proxy?server?port ????username:?user?name ????passwd:?password?for?proxy
CSE的配置是分層次的,按照優(yōu)先級(jí)順序是:
yaml配置文件 < 環(huán)境變量 < System Property < 配置中心。
如果開(kāi)發(fā)者不希望將密碼信息寫(xiě)入配置文件,也可以通過(guò)環(huán)境變量或者System Property的方式設(shè)置這些配置信息。比如:
java -Dcse.credentials.accessKey=$ACCESS_KEY Application.jar。
立即體驗(yàn):https://console.huaweicloud.com/cse/?region=cn-north-1#/cse/home
了解詳情:https://www.huaweicloud.com/product/cse.html
微服務(wù)引擎
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。