溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Nacos的接入方法是什么

發(fā)布時間:2021-10-28 17:28:34 來源:億速云 閱讀:244 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Nacos的接入方法是什么”,在日常操作中,相信很多人在Nacos的接入方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Nacos的接入方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

接入

加入依賴

第一步在 pom 配置文件中加入下面的依賴,用于實現(xiàn)服務(wù)注冊發(fā)現(xiàn)和配置中心功能。

<!-- nacos 配置中心 --> <dependency>   <groupId>com.alibaba.cloud</groupId>   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!-- nacos 注冊發(fā)現(xiàn) --> <dependency>   <groupId>com.alibaba.cloud</groupId>   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>

增加配置

1.第二步在 SpringBoot 項目的啟動類上增加如下注解 @EnableDiscoveryClient 用于啟動服務(wù)注冊發(fā)現(xiàn)功能。

2.增加配置文件,對應(yīng)的配置信息需要修改成適合自己的,為了方便管理,應(yīng)用的分組名稱,命名空間以及相關(guān)的配置都需要合理的設(shè)置。多個業(yè)務(wù)使用同一個 nacos  集群的時候,需要根據(jù)各個的業(yè)務(wù)設(shè)定各自的命名空間。所有的配置文件都需要在對應(yīng)的命名空間下設(shè)置,避免多個業(yè)務(wù)混用,另外業(yè)務(wù)需要根據(jù)用到的組件或者配置,設(shè)定獨立的配置文件,例如數(shù)據(jù)庫的配置,Redis  的配置等都需要單獨設(shè)定,這樣是為了同一個應(yīng)用其他的其他服務(wù)也可以使用,而且再有地址變更的時候可以只修改一個文件就好,不會忘記。

# 應(yīng)用服務(wù)名稱 spring.application.name=application-name # 應(yīng)用分組名稱 spring.cloud.nacos.config.group=GROUP-NAME # 配置文件的后綴名 spring.cloud.nacos.config.file-extension=properties # nacos 對應(yīng)的命名空間,在后臺創(chuàng)建好命名空間后會自動生成 spring.cloud.nacos.config.namespace=xxxxxxxxxxxxxxxxxxxxxxxxx # 對應(yīng)的配置文件 # MySQL 相關(guān)配置 spring.cloud.nacos.config.ext-config[0].data-id=mysql.properties spring.cloud.nacos.config.ext-config[0].group=GROUP-NAME # Redis 相關(guān)配置 spring.cloud.nacos.config.ext-config[1].data-id=redis.properties spring.cloud.nacos.config.ext-config[1].group=GROUP-NAME # 其他配置等 spring.cloud.nacos.config.ext-config[2].data-id=other.properties spring.cloud.nacos.config.ext-config[2].group=GROUP-NAME # 配置中心地址,多個逗號分隔 spring.cloud.nacos.config.server-addr=xxx.xx.xx.xx:xxxx # 服務(wù)注冊發(fā)現(xiàn)地址,多個逗號分隔 spring.cloud.nacos.discovery.server-addr=xxx.xx.xx.xx:xxxx # 集群名稱 spring.cloud.nacos.discovery.cluster-name=CLUSTER-NAME

3.代碼中可以使用注解 @Value() 來直接讀取 Nacos 配置中的屬性參數(shù),也可以使用 @ConfigurationProperties(prefix  = "spring.datasource") 讀取批量參數(shù)。

4.spring.cloud.nacos.config.ext-config[0].refresh=true  該參數(shù)表示是否開啟自動更新,根據(jù)是否需要自動更新覺得是否配置,如果需要自動更新,加上這個配置后還需要在需要自動更新配置的 Bean  上面增加@RefreshScop 注解。然后對應(yīng)的 Bean  內(nèi)部的屬性就可以實現(xiàn)自動更新了。增加了spring.cloud.nacos.config.ext-config[0].refresh=true 配置后在修改了  Nacos 中的配置過后日志會出現(xiàn)下面信息,會重新加載配置,并且輸出變更的 key 信息。

5.Nacos的接入方法是什么

服務(wù)調(diào)用

當(dāng)所有的服務(wù)都接入 Nacos 過后,我們在 Nacos 的后臺就可以看到每個服務(wù)的情況,如下圖,可以看到服務(wù)狀態(tài)。

Nacos的接入方法是什么

然后我們在服務(wù) A 里面如果要調(diào)用服務(wù) B 的時候,就可以直接在 FeginClient 中配置服務(wù) B 的名稱,不需要填寫 URL  了。這樣我們就不用考慮服務(wù) B 是否地址和端口會不會變。服務(wù) B 的實例增加還是減少,端口是否變了,對服務(wù) A 來說都不關(guān)心,只要有個服務(wù)名稱就可以了。

Nacos的接入方法是什么

避坑

命名空間

Nacos 有一個默認(rèn)的名為 public 的命名空間,這個命名空間是無法刪除的,所有未指定命名空間的配置都會放在該命名空間下;同樣的 Nacos  有一個默認(rèn)的名為 DEFAULT_GROUP 的分組,在沒有指定分組名稱的時候默認(rèn)的配置都是在該分組下。

對于我們應(yīng)用程序來說,由于很多情況下一個 Nacos  集群是多個團隊共同使用的,所以為了方便管理,我們需要根據(jù)自己的業(yè)務(wù)設(shè)置自己的命名空間,用于存放本業(yè)務(wù)的配置文件。本命名空間下的配置文件,根據(jù)各個的模塊決定是否需要重新分組。

要知道在沒有清晰的命名空間劃分的時候,要想修改一個配置的內(nèi)容,是很難受的一件事情。線上的配置調(diào)整,一個不小心就是事故。如果還是自動更新配置的話,那連后悔的機會都沒有。

精細(xì)配置

配置文件應(yīng)該專一,一個配置文件就設(shè)置一個內(nèi)容,比如 MySQL 的數(shù)據(jù)源單獨一個配置,Redis 的數(shù)據(jù)源單獨一個配置,如果多個 Redis  服務(wù),根據(jù)功能建議分開配置,因為并不是所有的服務(wù)都需要每個 Redis 的鏈接配置。各自的服務(wù)根據(jù)需要單獨引用對應(yīng)的配置文件即可。

將所有的配置獨立成一個配置文件方便后續(xù)修改配置,只要修改一個配置文件就好,不用擔(dān)心其他還有未修改的地方。

合理的規(guī)劃配置文件的內(nèi)容,往往很多時候可以事半功倍,極大的節(jié)約時間和減少出錯的概率。

自動刷新

前面介紹了如何設(shè)置配置自動刷新,不過服務(wù)是否需要自動更新配置,這個根據(jù)自身的業(yè)務(wù)去決定。

我這里一般不建議設(shè)置自動更新,因為現(xiàn)在都是微服務(wù)部署,有時候我們上線一個新功能的時候都是灰度發(fā)布,如果配置自動更新,再調(diào)整配置過后,全部實例都會生效,這樣會有風(fēng)險。不設(shè)置自動更新的話,我們可以單獨重啟個別實例,觀察線上情況,等穩(wěn)定了再發(fā)布所有服務(wù),這樣會安全很多。

當(dāng)然對于沒有那么多服務(wù),不需要灰度,影響不大的場景下,配置自動更新會方便很多,再修改配置后不需要重啟服務(wù)。

到此,關(guān)于“Nacos的接入方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI