SpringCloud協(xié)同開發(fā)實(shí)現(xiàn)方法淺析
相比Springboot開發(fā),SpringCloud開發(fā)要復(fù)雜的多,因?yàn)樯婕胺?wù)的注冊(cè)發(fā)現(xiàn),多個(gè)微服務(wù)模塊間的調(diào)用等。
最簡(jiǎn)單的解決方案是每個(gè)開發(fā)者都在本地啟動(dòng)一套完整的開發(fā)環(huán)境,包括網(wǎng)關(guān)、nacos等各個(gè)組成微服務(wù)的模塊,如果系統(tǒng)模塊較少,這種開發(fā)方案還可以接受,如果系統(tǒng)太多,本地啟動(dòng)整套環(huán)境未免太多臃腫,非常不方便。
微服務(wù)注冊(cè)問題
像下面這張圖,倒數(shù)第二個(gè)服務(wù)啟動(dòng)了兩個(gè)實(shí)例,他們兩個(gè)組成了一個(gè)集群。前端在調(diào)用接口的時(shí)候可能想調(diào)用A的該服務(wù),但是可能會(huì)被路由到B的該服務(wù)上去了,這種情況是我們不希望看到的。
我們想要看到的效果是,A、B兩個(gè)開發(fā)者將自己的功能開發(fā)完以后提交到服務(wù)器部署。前端可以調(diào)用到這些開發(fā)好、經(jīng)過后端自測(cè)的服務(wù)接口,后端在提交自己的代碼之前,不應(yīng)該注冊(cè)到集群中。
為了解決上述問題,可以在bootstrap.yml文件中加入下面配置。開啟如下配置以后,啟動(dòng)服務(wù)將不再注冊(cè)到nacos中,前端調(diào)用也不會(huì)再調(diào)用到該服務(wù)。
server:
port: 3001
# 加入下面配置,取消該服務(wù)的注冊(cè)
spring:
cloud:
nacos:
discovery:
register-enabled: false
后端如果想要調(diào)用自己開發(fā)的接口,可以直接通過http://localhost:3001/接口地址調(diào)用并測(cè)試,等測(cè)試接口沒問題以后可以提交自己的代碼并部署,部署完成以后前端可以調(diào)用接口進(jìn)行開發(fā)。
微服務(wù)間調(diào)用問題
在微服務(wù)中可以通過OpenFeign,使用微服務(wù)名稱進(jìn)行微服務(wù)間的調(diào)用,但是同樣的,如果本地開發(fā),我們可能想讓某個(gè)請(qǐng)求轉(zhuǎn)發(fā)到某個(gè)特定的服務(wù)上,而不是通過微服務(wù)名稱進(jìn)行負(fù)載均衡轉(zhuǎn)發(fā),為了將請(qǐng)求轉(zhuǎn)發(fā)給特定的服務(wù),可以在@FeignClient注解中指定要請(qǐng)求的URL,如下,是將RemoteUserService類的請(qǐng)求轉(zhuǎn)發(fā)給http://172.20.2.3:11201服務(wù)了。注意這樣寫是為了本地開發(fā)方便調(diào)試,如果要提交代碼需要將這些代碼去掉。
@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, url = "http://172.20.2.3:11201", fallbackFactory = RemoteUserFallbackFactory.class) public interface RemoteUserService { /** * 通過用戶名查詢用戶信息 * * @param username 用戶名 * @param source 請(qǐng)求來源 * @return 結(jié)果 */ @GetMapping("/user/info/{username}") public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); }
前后端聯(lián)調(diào)問題
正常的前后端聯(lián)調(diào)應(yīng)該是后端寫好代碼,將代碼合并到開發(fā)分支上面,部署開發(fā)分支,前端連接開發(fā)分支進(jìn)行調(diào)試。
到此這篇關(guān)于SpringCloud協(xié)同開發(fā)實(shí)現(xiàn)方法淺析的文章就介紹到這了,更多相關(guān)SpringCloud協(xié)同開發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于SpringBoot和Vue3的博客平臺(tái)發(fā)布、編輯、刪除文章功能實(shí)現(xiàn)
在上一個(gè)教程中,我們已經(jīng)實(shí)現(xiàn)了基于Spring?Boot和Vue3的用戶注冊(cè)與登錄功能。本教程將繼續(xù)引導(dǎo)您實(shí)現(xiàn)博客平臺(tái)的發(fā)布、編輯、刪除文章功能,需要的朋友參考一下2023-04-04Java組件commons fileupload實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Java組件commons fileupload實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Mybatis中mapper.xml實(shí)現(xiàn)熱加載介紹
大家好,本篇文章主要講的是Mybatis中mapper.xml實(shí)現(xiàn)熱加載介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01feign調(diào)用中文參數(shù)被encode編譯的問題
這篇文章主要介紹了feign調(diào)用中文參數(shù)被encode編譯的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03java實(shí)現(xiàn)計(jì)算周期性提醒的示例
本文分享一個(gè)java實(shí)現(xiàn)計(jì)算周期性提醒的示例,可以計(jì)算父親節(jié)、母親節(jié)這樣的節(jié)日,也可以定義如每月最好一個(gè)周五,以方便安排會(huì)議2014-04-04Feign?請(qǐng)求動(dòng)態(tài)URL方式
這篇文章主要介紹了Feign?請(qǐng)求動(dòng)態(tài)URL方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07java根據(jù)負(fù)載自動(dòng)抓取jstack?dump詳情
這篇文章主要介紹了java根據(jù)負(fù)載自動(dòng)抓取jstack?dump詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09java實(shí)現(xiàn)掃雷游戲控制臺(tái)版
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)掃雷游戲控制臺(tái)版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04