SpringCloud整合Nacos實(shí)現(xiàn)流程詳解
1: Nacos搭建可以參考 http://www.dbjr.com.cn/article/196842.htm
SpringCloud 版本
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR2</version> <type>pom</type> <scope>import</scope> </dependency>
Nacos pom
<!--配置中心pom--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${alibaba-nacos-config.version}</version> </dependency> <!--服務(wù)發(fā)現(xiàn)pom--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${alibaba-nacos-discovery.version}</version> </dependency>
數(shù)據(jù)庫pom
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.conn.version}</version> </dependency>
order 項(xiàng)目 bootstrap.yml 配置
spring: application: name: order-server profiles: active: dev cloud: nacos: config: server-addr: 10.0.0.51:8848 # 配置中心nacos的地址 file-extension: yml # 配置文件后綴(格式) group: business-app # 分組名稱 namespace: ${spring.profiles.active} # 命令空間,可以用來區(qū)分不同的環(huán)境 discovery: server-addr: 10.0.0.51:8848 # 服務(wù)發(fā)現(xiàn)地址nacos的地 namespace: ${spring.profiles.active}
server: port: 8056
在 Nacos的控制臺左側(cè)找到命名空間的菜單,新增命名空間
命名空間id : dev
命名空間名稱: dev
描述:開發(fā)環(huán)境
配置中心功能-測試
在配置管理-》配置列表右側(cè),找到 + 的標(biāo)志,點(diǎn)擊后新增配置
將yml 中的配置添入進(jìn)去
之所以需要配置 spring.application.name ,是因?yàn)樗菢?gòu)成 Nacos 配置管理 dataId字段的一部分。
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
prefix 默認(rèn)為 spring.application.name 的值,也可以通過配置項(xiàng) spring.cloud.nacos.config.prefix來配置。
spring.profiles.active 即為當(dāng)前環(huán)境對應(yīng)的 profile,詳情可以參考 Spring Boot文檔。 注意:當(dāng) spring.profiles.active 為空時(shí),對應(yīng)的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
file-exetension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項(xiàng) spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。
上面配置好后,可以啟動項(xiàng)目
啟動日志:
Ignore the empty nacos configuration and get it based on dataId[order-server.yml] & group[business-app] 2020-09-16 14:05:07.053 WARN 27342 --- [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[order-server-dev.yml] & group[business-app] 2020-09-16 14:05:07.053 INFO 27342 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='order-server-dev.yml,business-app'}, NacosPropertySource {name='order-server.yml,business-app'}, NacosPropertySource {name='order-server,business-app'}]} 2020-09-16 14:05:07.077 INFO 27342 --- [ main] com.order.OrderApplication : The following profiles are active: dev
從日志可以看到他會從nacos上匹配 based on dataId[order-server-dev.yml] & group[business-app] 和 [order-server.yml] & group[business-app] 配置文件。并且項(xiàng)目也是啟動成功的,因?yàn)轫?xiàng)目中加入了數(shù)據(jù)庫的pom,如果沒有獲取到配置會啟動失敗。
服務(wù)發(fā)現(xiàn)功能-測試
按照上面yml 中的配置,啟動后在服務(wù)列表中看到我們的項(xiàng)目
按照上面的配置,再創(chuàng)建一個項(xiàng)目 account-server ,注意修改新項(xiàng)目的spring.application.name
在order 項(xiàng)目的pom中添加feign 配置
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
測試用戶下單成功后,扣減帳戶錢。order 調(diào)用 account 服務(wù),使用feign,跟一般的feign使用一樣。 啟動account服務(wù)
代碼目錄 : https://gitee.com/zhangxingsheng/seata-demo
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Alibaba?SpringCloud集成Nacos、openFeign實(shí)現(xiàn)負(fù)載均衡的解決方案
- SpringCloud使用Nacos保存和讀取變量的配置方法
- SpringBoot項(xiàng)目改為SpringCloud項(xiàng)目使用nacos作為注冊中心的方法
- 關(guān)于springcloud集成nacos遇到的問題
- SpringCloud2020整合Nacos-Bootstrap配置不生效的解決
- SpringCloud-Alibaba-Nacos啟動失敗解決方案
- Springcloud seata nacos環(huán)境搭建過程圖解
- Springcloud-nacos實(shí)現(xiàn)配置和注冊中心的方法
- springcloud nacos的賦值均衡和動態(tài)刷新
相關(guān)文章
解決Springboot @WebFilter攔截器未生效問題
這篇文章主要介紹了解決Springboot @WebFilter攔截器未生效問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10基于Java創(chuàng)建XML(無中文亂碼)過程解析
這篇文章主要介紹了基于Java創(chuàng)建XML(無中文亂碼)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Spring Cache + Caffeine的整合與使用示例詳解
對于一些項(xiàng)目里需要對數(shù)據(jù)庫里的某些數(shù)據(jù)一直重復(fù)請求的,且這些數(shù)據(jù)基本是固定的,在這種情況下,可以借助簡單使用本地緩存來緩存這些數(shù)據(jù),本文介紹一下Spring Cache和Caffeine的使用,感興趣的朋友一起看看吧2023-12-12Hibernate實(shí)現(xiàn)批量添加數(shù)據(jù)的方法
這篇文章主要介紹了Hibernate實(shí)現(xiàn)批量添加數(shù)據(jù)的方法,詳細(xì)分析了基于Hibernate執(zhí)行批量添加操作的具體步驟與相關(guān)實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-03-03詳解Java LinkedHashMap與HashMap的使用
這篇文章主要通過幾個示例為大家詳細(xì)介紹了Java中LinkedHashMap與HashMap的常見使用和概述,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10Java?對象在?JVM?中的內(nèi)存布局超詳細(xì)解說
這篇文章主要介紹了Java?對象在?JVM?中的內(nèi)存布局超詳細(xì)解說,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09spring事務(wù)里面開啟線程插入報(bào)錯了是否會回滾
這篇文章主要介紹了spring事務(wù)里面開啟線程插入,報(bào)錯了是否會回滾?這是小編遇到一道面試題,題目大概是這個樣子,今天抽空通過示例代碼給大家分析下,需要的朋友可以參考下2023-04-04