溫馨提示×

溫馨提示×

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

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

Spring Cloud Alibaba Nacos 入門詳解

發(fā)布時間:2020-10-21 07:37:04 來源:腳本之家 閱讀:265 作者:幻楚 欄目:編程語言

概覽

阿里巴巴在2018年7月份發(fā)布Nacos, Nacos是一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。并表示在6-8個月完成到生產(chǎn)可用的0.8版本,目前版本是0.9版本。

Nacos提供四大功能

服務(wù)發(fā)現(xiàn)和服務(wù)健康檢查

Nacos使服務(wù)更容易注冊自己并通過DNS或HTTP接口發(fā)現(xiàn)其他服務(wù)。Nacos還提供服務(wù)的實時健康檢查,以防止向不健康的主機或服務(wù)實例發(fā)送請求。

動態(tài)配置管理

動態(tài)配置服務(wù)允許您在所有環(huán)境中以集中和動態(tài)的方式管理所有服務(wù)的配置。Nacos消除了在更新配置時重新部署應(yīng)用程序和服務(wù)的需要,這使配置更改更加高效和靈活。

動態(tài)DNS服務(wù)

動態(tài) DNS 服務(wù)支持權(quán)重路由,讓您更容易地實現(xiàn)中間層負載均衡、更靈活的路由策略、流量控制以及數(shù)據(jù)中心內(nèi)網(wǎng)的簡單DNS解析服務(wù)。動態(tài)DNS服務(wù)還能讓您更容易地實現(xiàn)以 DNS 協(xié)議為基礎(chǔ)的服務(wù)發(fā)現(xiàn),以幫助您消除耦合到廠商私有服務(wù)發(fā)現(xiàn) API 上的風(fēng)險。

服務(wù)和元數(shù)據(jù)管理

Nacos提供易于使用的服務(wù)儀表板,可幫助您管理服務(wù)元數(shù)據(jù),配置,kubernetes DNS,服務(wù)運行狀況和指標(biāo)統(tǒng)計。

安裝

Nacos安裝可以采用如下兩種方式:

1.官網(wǎng)下載穩(wěn)定版本解壓使用。

2.下載源代碼編譯使用,目前最新的版本是0.9.0版本。

本文使用第一種方式,到Nacos的穩(wěn)定版本下載地址https://github.com/alibaba/nacos/releases,下載最新版,下載后解壓即安裝完成,然后進入解壓目錄后的bin目錄。

unzip nacos-server-0.9.0.zip
或者
tar -xvf nacos-server-0.9.0.tar.gz

進入解壓目錄后的bin目錄執(zhí)行如下命令啟動Nacos。

#Linux/Unix/Mac 下
sh startup.sh -m standalone
#Windows 下
cmd startup.cmd

啟動成功后,訪問Nacos服務(wù),http://localhost:8848/nacos/#/login,默認情況用戶名密碼都是nacos,登錄頁如圖所示。

Spring Cloud Alibaba Nacos 入門詳解

登錄后如圖所示。

Spring Cloud Alibaba Nacos 入門詳解

SpringBoot 使用 Nacos 配置管理

創(chuàng)建一個springboot項目,主要代碼如下。

pom.xml

<dependency>
  <groupId>com.alibaba.boot</groupId>
  <artifactId>nacos-config-spring-boot-starter</artifactId>
  <version>0.2.1</version>
</dependency>

application.yml

spring:
 application:
  name: springcloud-nacos-hello

nacos:
 config:
  server-addr: 127.0.0.1:8848

配置說明:

  • spring.application.name:配置應(yīng)用名。
  • nacos.config.server-addr:Nacos server 的地址。

啟動類

在啟動類,加入 @NacosPropertySource 注解其中包含兩個屬性,如下:

  • dataId:這個屬性是需要在Nacos中配置的Data Id。
  • autoRefreshed:為true的話開啟自動更新。

在使用Nacos做配置中心后,需要使用@NacosValue注解獲取配置,使用方式與@Value一樣,完整啟動類代碼如下所示。

@SpringBootApplication
@NacosPropertySource(dataId = "springcloud-nacos-hello", autoRefreshed = true)
@RestController
public class SpringcloudNacosHelloApplication {

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

  @NacosValue(value = "${test.properties.useLocalCache:false}", autoRefreshed = true)
  private boolean useLocalCache;


  @GetMapping("/get")
  public boolean get(){
    return useLocalCache;
  }

}

啟動應(yīng)用,訪問http://localhost:8080/get ,返回配置的默認值 “false”

使用Nacos修改配置

添加剛剛創(chuàng)建的data id 的服務(wù),并將配置由 false 修改為 true,如圖所示。

Spring Cloud Alibaba Nacos 入門詳解

發(fā)布后,返回配置列表,出現(xiàn)新添加的配置,如圖所示。

Spring Cloud Alibaba Nacos 入門詳解

再次訪問 http://localhost:8080/get ,返回值為 “true”。

數(shù)據(jù)源

經(jīng)過了上邊的一些簡單操作,我們已經(jīng)可以正常使用 Nacos 配置中心了。

但是不知道你有沒有想過:配置數(shù)據(jù)是存在哪里呢?

我們沒有對 Nacos Server 做任何配置,那么數(shù)據(jù)只有兩個位置可以存儲:

  • 內(nèi)存
  • 本地數(shù)據(jù)庫

重啟了 Nacos server ,你會發(fā)現(xiàn)原先創(chuàng)建的配置依然,這說明不是內(nèi)存存儲的。

這時候我們打開NACOS_PATH/data,會發(fā)現(xiàn)里邊有個derby-data目錄,Derby 是 Java 編寫的數(shù)據(jù)庫,屬于 Apache 的一個開源項目。我們的配置數(shù)據(jù)現(xiàn)在就存儲在這個庫中。

Derby 我們并不是很熟悉,但是數(shù)據(jù)源可以改為我們熟悉的 MySQL。具體的操作步驟如下。

創(chuàng)建一個名為nacos_config的 database。

將NACOS_PATH/conf/nacos-mysql.sql中的表結(jié)構(gòu)導(dǎo)入剛才創(chuàng)建的庫中。

修改NACOS_PATH/conf/application.properties文件,增加支持mysql數(shù)據(jù)源配置(目前只支持mysql),添加mysql數(shù)據(jù)源的url、用戶名和密碼。

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

再以單機模式啟動nacos,nacos所有寫嵌入式數(shù)據(jù)庫的數(shù)據(jù)都寫到了mysql了。

到這里SpringBoot使用Nacos配置中心就完成了,關(guān)于Nacos更多功能及詳細使用,可以參看官方文檔。

源碼下載

https://github.com/gf-huanchupk/SpringCloudAlibabaLearning

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(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