關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題
SpringBoot2.7.6連接nacos的問題
簡(jiǎn)述:
我遇到的問題是版本不匹配的問題,經(jīng)搜索查詢得出如下結(jié)論,最終完成了對(duì)nacos的連接。
需要注意的是,我是用springboot子模塊進(jìn)行了nacos連接,其中繼承了父工程,關(guān)鍵配置是要對(duì)nacos進(jìn)行修改。
版本選擇
<!-- 繼承Spring boot工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.6</version> </parent> <!-- 此處選擇的mysql版本為如下,依賴自己導(dǎo)入 --> <mysql.version>8.0.12</mysql.version> <!--SpringBoot2.4.x之后默認(rèn)不加載bootstrap.yml文件,需要在pom里加上依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <!--nacos注冊(cè)和配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.6.RELEASE</version> </dependency>
yml配置
spring: application: name: colleges-user cloud: nacos: discovery: server-addr: 192.168.22.135:8848 enabled: true config: server-addr: 192.168.22.135:8848 file-extension: yaml # 因?yàn)閟pringboot 2.4版本以后默認(rèn)關(guān)閉加載bootstrap.yml,所以只能通過此方式連接到nacos config import: nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension} enabled: true
springboot對(duì)nacos的使用
一、啟動(dòng)nacos:
① 使用docker安裝nacos:
docker pull nacos/nacos-server:2.0.3
② 啟動(dòng)容器(配置8848端口為nacos端口):
docker run --name mynacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:2.0.3
③ 查看是否啟動(dòng)成功:
docker ps
以下代表啟動(dòng)成功:
④啟動(dòng)nacos:
docker exec -it 76c9be91653a /bin/bash#其中76c9be91653a 為nacos的containerID
沒有關(guān)閉防火墻的可以選擇性關(guān)閉防火墻:
systemctl stop firewalld
啟動(dòng)成功后,就可以在瀏覽器訪問nacos了:
地址: [服務(wù)器ip]:8848/nacos
賬號(hào)和密碼都是nacos
二、配置固定的配置值
① 首先在空間組新建命名空間:
命名空間ID自動(dòng)生成,復(fù)制下來之后yml配置文件中會(huì)用到
② 在配置管理的配置列表里面添加配置:
其中,配置內(nèi)容就是你想要配置的固定值,建議將固定的、不容易被更改的配置放到nacos里;
比如將過期時(shí)間設(shè)置為1000
三、springboot集成nacos
① 導(dǎo)入jar包:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.6.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.6.RELEASE</version> </dependency>
其中,nacos的版本需要和springboot版本對(duì)應(yīng),我用的是:
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
② 新建一個(gè)bootstrap.yml配置文件,識(shí)別到nacos相關(guān)配置:
spring: cloud: nacos: username: nacos password: nacos discovery: namespace: 6024d9fd-2b64-4660-b89b-2932f505527d #我們?cè)趎acos中創(chuàng)建的空間名稱 group: dev #nacos配置文件所選擇的group server-addr: (服務(wù)器ip):8848 #nacos服務(wù)地址 config: namespace: 6024d9fd-2b64-4660-b89b-2932f505527d #我們?cè)趎acos中創(chuàng)建的空間名稱 timeout: 3000 auto-refresh: true #修改后自動(dòng)加載 group: dev #nacos配置文件所選擇的group file-extension: yaml #讀取nacos配置文件后綴 enable-remote-sync-config: true refresh-enabled: true server-addr: (服務(wù)器ip):8848 #nacos服務(wù)地址
③啟動(dòng)類上加上 @EnableDiscoveryClient 注解
使用時(shí): 直接將已經(jīng)在nacos里配置好的值添加到value注解里即可,像這樣:
@Value("${key}") private Integer key;
這樣就可以直接獲取到111了。
注意需要在使用到這個(gè)key的nacos的類上面加上 @RefreshScope 這個(gè)注解,如果在nacos配置中刷新了key的值,就可以不用重新啟動(dòng)springboot也能獲取到。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 數(shù)據(jù)類型及類型轉(zhuǎn)換的互相轉(zhuǎn)換實(shí)例代碼
這篇文章主要介紹了Java 數(shù)據(jù)類型及類型轉(zhuǎn)換的互相轉(zhuǎn)換實(shí)例代碼,需要的朋友可以參考下2020-10-10Java線程池如何實(shí)現(xiàn)精準(zhǔn)控制每秒API請(qǐng)求
這篇文章主要介紹了Java線程池如何實(shí)現(xiàn)精準(zhǔn)控制每秒API請(qǐng)求問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Java和Ceylon對(duì)象的構(gòu)造和驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了Java和Ceylon對(duì)象的構(gòu)造和驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11簡(jiǎn)單易懂的Java Map數(shù)據(jù)添加指南
Java提供了多種方法來往Map中添加數(shù)據(jù),開發(fā)者可以根據(jù)具體需求選擇合適的方法,需要的朋友可以參考下2023-11-11如何使用IDEA 搭建 SpringCloud 項(xiàng)目
所謂微服務(wù),就是要把整個(gè)業(yè)務(wù)模塊拆分成多個(gè)各司其職的小模塊,做到單一職責(zé)原則,不會(huì)重復(fù)開發(fā)相同的業(yè)務(wù)代碼,實(shí)現(xiàn)真正意義上的高內(nèi)聚、低耦合,這篇文章主要介紹了如何使用IDEA 搭建 SpringCloud 項(xiàng)目,需要的朋友可以參考下2023-11-11Spring?Boot緩存實(shí)戰(zhàn)之Redis?設(shè)置有效時(shí)間和自動(dòng)刷新緩存功能(時(shí)間支持在配置文件中配置)
這篇文章主要介紹了Spring?Boot緩存實(shí)戰(zhàn)?Redis?設(shè)置有效時(shí)間和自動(dòng)刷新緩存,時(shí)間支持在配置文件中配置,需要的朋友可以參考下2023-05-05Java中Builder模式的實(shí)現(xiàn)詳解
在設(shè)計(jì)模式中對(duì)Builder模式的定義是用于構(gòu)建復(fù)雜對(duì)象的一種模式,所構(gòu)建的對(duì)象往往需要多步初始化或賦值才能完成。下面這篇文章主要給大家介紹了在Java各個(gè)版本中Builder模式實(shí)現(xiàn)的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考學(xué)習(xí)。2017-05-05