日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Alibaba基础教程:使用Nacos作为配置中心

發布時間:2024/7/5 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Alibaba基础教程:使用Nacos作为配置中心 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過本教程的前兩篇:

  • 《Spring Cloud Alibaba基礎教程:使用Nacos實現服務注冊與發現》
  • 《Spring Cloud Alibaba基礎教程:支持的幾種服務消費方式(RestTemplate、WebClient、Feign)》

我們已經學會了,如何利用Nacos實現服務的注冊與發現。同時,也介紹了在Spring Cloud中,我們可以使用的幾種不同編碼風格的服務消費方式。接下來,我們再來學習一下Nacos的另外一個重要能力:配置管理。

簡介

Nacos除了實現了服務的注冊發現之外,還將配置中心功能整合在了一起。通過Nacos的配置管理功能,我們可以將整個架構體系內的所有配置都集中在Nacos中存儲。這樣做的好處,在以往的教程中介紹Spring Cloud Config時也有提到,主要有以下幾點:

  • 分離的多環境配置,可以更靈活的管理權限,安全性更高
  • 應用程序的打包更為純粹,以實現一次打包,多處運行的特點(《云原聲應用的12要素》之一)

Nacos的配置管理模型與淘寶開源的配置中心Diamond類似,基礎層面都通過DataId和Group來定位配置內容,除此之外還增加了很多其他的管理功能。

快速入門

下面我們通過一個簡單的例子來介紹如何在Nacos中創建配置內容以及如何在Spring Cloud應用中加載Nacos的配置信息。

創建配置

第一步:進入Nacos的控制頁面,在配置列表功能頁面中,點擊右上角的“+”按鈕,進入“新建配置”頁面,如下圖填寫內容:

其中:

  • Data ID:填入alibaba-nacos-config-client.properties
  • Group:不修改,使用默認值DEFAULT_GROUP
  • 配置格式:選擇Properties
  • 配置內容:應用要加載的配置內容,這里僅作為示例,做簡單配置,比如:didispace.title=spring-cloud-alibaba-learning

創建應用

第一步:創建一個Spring Boot應用,可以命名為:alibaba-nacos-config-client。

第二步:編輯pom.xml,加入必要的依賴配置,比如:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<optional>true</optional>
</dependency>
</dependencies>

上述內容主要三部分:

  • parent:定義spring boot的版本
  • dependencyManagement:spring cloud的版本以及spring cloud alibaba的版本,由于spring cloud alibaba還未納入spring cloud的主版本管理中,所以需要自己加入
  • dependencies:當前應用要使用的依賴內容。這里主要新加入了Nacos的配置客戶端模塊:spring-cloud-starter-alibaba-nacos-config。由于在dependencyManagement中已經引入了版本,所以這里就不用指定具體版本了。

可以看到,這個例子中并沒有加入nacos的服務發現模塊,所以這兩個內容是完全可以獨立使用的

第三步:創建應用主類,并實現一個HTTP接口:

@SpringBootApplication
public class TestApplication {

public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}

@Slf4j
@RestController
@RefreshScope
static class TestController {

@Value("${didispace.title:}")
private String title;

@GetMapping("/test")
public String hello() {
return title;
}

}

}

內容非常簡單,@SpringBootApplication定義是個Spring Boot應用;還定義了一個Controller,其中通過@Value注解,注入了key為didispace.title的配置(默認為空字符串),這個配置會通過/test接口返回,后續我們會通過這個接口來驗證Nacos中配置的加載。另外,這里還有一個比較重要的注解@RefreshScope,主要用來讓這個類下的配置內容支持動態刷新,也就是當我們的應用啟動之后,修改了Nacos中的配置內容之后,這里也會馬上生效。

第四步:創建配置文件bootstrap.properties,并配置服務名稱和Nacos地址

spring.application.name=alibaba-nacos-config-client
server.port=8001

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

注意:這里必須使用bootstrap.properties。同時,spring.application.name值必須與上一階段Nacos中創建的配置Data Id匹配(除了.properties或者.yaml后綴)。

第五步:啟動上面創建的應用。

2019-01-27 18:29:43.497 INFO 93597 --- [ main] o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'alibaba-nacos-config-client.properties', group: 'DEFAULT_GROUP'
2019-01-27 18:29:43.498 INFO 93597 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='alibaba-nacos-config-client.properties'}]}

在啟動的時候,我們可以看到類似上面的日志信息,這里會輸出應用程序要從Nacos中獲取配置的dataId和group。如果在啟動之后,發現配置信息沒有獲取到的時候,可以先從這里著手,看看配置加載的目標是否正確。

第六步:驗證配置獲取和驗證動態刷新

用curl或者postman等工具,訪問接口: localhost:8001/test,一切正常的話,將返回Nacos中配置的spring-cloud-alibaba-learning。然后,再通過Nacos頁面,修改這個內容,點擊發布之后,再訪問接口,可以看到返回結果變了。

同時,在應用的客戶端,我們還能看到如下日志:

2019-01-27 18:39:14.162 INFO 93597 --- [-127.0.0.1_8848] o.s.c.e.event.RefreshEventListener : Refresh keys changed: [didispace.title]

在Nacos中修改了Key,在用到這個配置的應用中,也自動刷新了這個配置信息。

參考資料

  • Nacos官方文檔
  • Nacos源碼分析

代碼示例

本文示例讀者可以通過查看下面倉庫的中的alibaba-nacos-config-client項目:

  • Github:https://github.com/dyc87112/SpringCloud-Learning/
  • Gitee:https://gitee.com/didispace/SpringCloud-Learning/

如果您對這些感興趣,歡迎star、follow、收藏、轉發給予支持!

以下專題教程也許您會有興趣

  • Spring Boot基礎教程
  • Spring Cloud基礎教程

總結

以上是生活随笔為你收集整理的Spring Cloud Alibaba基础教程:使用Nacos作为配置中心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。