SpringCloud協(xié)同開發(fā)實現(xiàn)方法淺析
相比Springboot開發(fā),SpringCloud開發(fā)要復(fù)雜的多,因為涉及服務(wù)的注冊發(fā)現(xiàn),多個微服務(wù)模塊間的調(diào)用等。
最簡單的解決方案是每個開發(fā)者都在本地啟動一套完整的開發(fā)環(huán)境,包括網(wǎng)關(guān)、nacos等各個組成微服務(wù)的模塊,如果系統(tǒng)模塊較少,這種開發(fā)方案還可以接受,如果系統(tǒng)太多,本地啟動整套環(huán)境未免太多臃腫,非常不方便。
微服務(wù)注冊問題
像下面這張圖,倒數(shù)第二個服務(wù)啟動了兩個實例,他們兩個組成了一個集群。前端在調(diào)用接口的時候可能想調(diào)用A的該服務(wù),但是可能會被路由到B的該服務(wù)上去了,這種情況是我們不希望看到的。
我們想要看到的效果是,A、B兩個開發(fā)者將自己的功能開發(fā)完以后提交到服務(wù)器部署。前端可以調(diào)用到這些開發(fā)好、經(jīng)過后端自測的服務(wù)接口,后端在提交自己的代碼之前,不應(yīng)該注冊到集群中。

為了解決上述問題,可以在bootstrap.yml文件中加入下面配置。開啟如下配置以后,啟動服務(wù)將不再注冊到nacos中,前端調(diào)用也不會再調(diào)用到該服務(wù)。
server:
port: 3001
# 加入下面配置,取消該服務(wù)的注冊
spring:
cloud:
nacos:
discovery:
register-enabled: false
后端如果想要調(diào)用自己開發(fā)的接口,可以直接通過http://localhost:3001/接口地址調(diào)用并測試,等測試接口沒問題以后可以提交自己的代碼并部署,部署完成以后前端可以調(diào)用接口進行開發(fā)。
微服務(wù)間調(diào)用問題
在微服務(wù)中可以通過OpenFeign,使用微服務(wù)名稱進行微服務(wù)間的調(diào)用,但是同樣的,如果本地開發(fā),我們可能想讓某個請求轉(zhuǎn)發(fā)到某個特定的服務(wù)上,而不是通過微服務(wù)名稱進行負載均衡轉(zhuǎn)發(fā),為了將請求轉(zhuǎn)發(fā)給特定的服務(wù),可以在@FeignClient注解中指定要請求的URL,如下,是將RemoteUserService類的請求轉(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 請求來源
* @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ā)分支進行調(diào)試。
到此這篇關(guān)于SpringCloud協(xié)同開發(fā)實現(xiàn)方法淺析的文章就介紹到這了,更多相關(guān)SpringCloud協(xié)同開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatis-Plus基于MyBatis封裝 BaseMapper的流程步驟
MyBatis-Plus作為 MyBatis 的增強框架,通過 BaseMapper 提供了通用的 CRUD 操作,極大地提升了開發(fā)效率,為了更透徹地理解其封裝機制,本文將采用鏈路追蹤的思維,從開發(fā)者調(diào)用接口開始,分析其如何基于 MyBatis 完成對 BaseMapper 的封裝,需要的朋友可以參考下2025-04-04
Java初學(xué)者之五子棋游戲?qū)崿F(xiàn)教程
這篇文章主要為大家詳細介紹了Java初學(xué)者之五子棋游戲?qū)崿F(xiàn)教程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
Java編程通過list接口實現(xiàn)數(shù)據(jù)的增刪改查代碼示例
這篇文章是介紹Java編程基礎(chǔ)方面的內(nèi)容,涉及l(fā)ist接口的操作,通過list接口實現(xiàn)對數(shù)據(jù)的增刪改查的相關(guān)代碼,具有一定參考價值,需要的朋友可以了解下。2017-10-10
springboot Quartz動態(tài)修改cron表達式的方法
這篇文章主要介紹了springboot Quartz動態(tài)修改cron表達式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
Springboot整合RabbitMQ實現(xiàn)發(fā)送驗證碼的示例代碼
這篇文章主要介紹了Springboot整合RabbitMQ實現(xiàn)發(fā)送驗證碼的功能,基于AMQP協(xié)議實現(xiàn)的消息隊列,它是一種應(yīng)用程序之間的通信方法,消息隊列在分布式系統(tǒng)開 發(fā)中應(yīng)用非常廣泛,需要的朋友可以參考下2022-02-02
Spring+Mybatis+Mysql搭建分布式數(shù)據(jù)庫訪問框架的方法
這篇文章主要介紹了Spring+Mybatis+Mysql搭建分布式數(shù)據(jù)庫訪問框架的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-03-03
Go Java算法之外觀數(shù)列實現(xiàn)方法示例詳解
這篇文章主要為大家介紹了Go Java算法外觀數(shù)列實現(xiàn)的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08

