SpringCloud協(xié)同開發(fā)實現方法淺析
相比Springboot開發(fā),SpringCloud開發(fā)要復雜的多,因為涉及服務的注冊發(fā)現,多個微服務模塊間的調用等。
最簡單的解決方案是每個開發(fā)者都在本地啟動一套完整的開發(fā)環(huán)境,包括網關、nacos等各個組成微服務的模塊,如果系統(tǒng)模塊較少,這種開發(fā)方案還可以接受,如果系統(tǒng)太多,本地啟動整套環(huán)境未免太多臃腫,非常不方便。
微服務注冊問題
像下面這張圖,倒數第二個服務啟動了兩個實例,他們兩個組成了一個集群。前端在調用接口的時候可能想調用A的該服務,但是可能會被路由到B的該服務上去了,這種情況是我們不希望看到的。
我們想要看到的效果是,A、B兩個開發(fā)者將自己的功能開發(fā)完以后提交到服務器部署。前端可以調用到這些開發(fā)好、經過后端自測的服務接口,后端在提交自己的代碼之前,不應該注冊到集群中。
為了解決上述問題,可以在bootstrap.yml文件中加入下面配置。開啟如下配置以后,啟動服務將不再注冊到nacos中,前端調用也不會再調用到該服務。
server:
port: 3001
# 加入下面配置,取消該服務的注冊
spring:
cloud:
nacos:
discovery:
register-enabled: false
后端如果想要調用自己開發(fā)的接口,可以直接通過http://localhost:3001/接口地址調用并測試,等測試接口沒問題以后可以提交自己的代碼并部署,部署完成以后前端可以調用接口進行開發(fā)。
微服務間調用問題
在微服務中可以通過OpenFeign,使用微服務名稱進行微服務間的調用,但是同樣的,如果本地開發(fā),我們可能想讓某個請求轉發(fā)到某個特定的服務上,而不是通過微服務名稱進行負載均衡轉發(fā),為了將請求轉發(fā)給特定的服務,可以在@FeignClient注解中指定要請求的URL,如下,是將RemoteUserService類的請求轉發(fā)給http://172.20.2.3:11201服務了。注意這樣寫是為了本地開發(fā)方便調試,如果要提交代碼需要將這些代碼去掉。
@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, url = "http://172.20.2.3:11201", fallbackFactory = RemoteUserFallbackFactory.class) public interface RemoteUserService { /** * 通過用戶名查詢用戶信息 * * @param username 用戶名 * @param source 請求來源 * @return 結果 */ @GetMapping("/user/info/{username}") public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); }
前后端聯(lián)調問題
正常的前后端聯(lián)調應該是后端寫好代碼,將代碼合并到開發(fā)分支上面,部署開發(fā)分支,前端連接開發(fā)分支進行調試。
到此這篇關于SpringCloud協(xié)同開發(fā)實現方法淺析的文章就介紹到這了,更多相關SpringCloud協(xié)同開發(fā)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于SpringBoot和Vue3的博客平臺發(fā)布、編輯、刪除文章功能實現
在上一個教程中,我們已經實現了基于Spring?Boot和Vue3的用戶注冊與登錄功能。本教程將繼續(xù)引導您實現博客平臺的發(fā)布、編輯、刪除文章功能,需要的朋友參考一下2023-04-04Java組件commons fileupload實現文件上傳功能
這篇文章主要為大家詳細介紹了Java組件commons fileupload實現文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10