SpringCloud入門實戰(8)-Nacos使用


Nacos是阿里發布的注冊中心及配置中心組件,提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。本文主要介紹Nacos結合Spring Cloud的使用,文中使用到的軟件版本:Nacos 1.3.2、Spring Boot 2.2.5.RELEASE、Spring Cloud Hoxton.SR3、Java 1.8.0_191。

1、簡介

官網地址為:https://nacos.io/zh-cn/docs/what-is-nacos.html,可以查看詳細介紹。

1.1、特性

a、服務發現和服務健康監測
b、動態配置服務
c、動態DNS服務
d、服務及其元數據管理

1.2、架構

2、安裝

2.1、單機模式

2.1.1、使用嵌入式數據庫

下載nacos的安裝包(https://github.com/alibaba/nacos/releases),解壓,運行

startup.sh -m standalone

2.1.2、使用mysql

單機模式默認使用嵌入式數據庫實現數據的存儲,不方便觀察數據存儲的基本情況;可以使用mysql來保存數據:

a、創建nacos的數據庫,並執行nacos-mysql.sql腳本

b、修改conf/application.properties文件,增加支持mysql數據源配置

spring.datasource.platform=mysql

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

再以單機模式啟動nacos,nacos所有寫嵌入式數據庫的數據都寫到了mysql

2.2、集群模式

2.2.1、部署架構圖

http://ip1:port/openAPI 直連ip模式,機器掛則需要修改ip才可以使用。
http://VIP:port/openAPI 掛載VIP模式,直連vip即可,下面掛server真實ip,可讀性不好。
http://nacos.com:port/openAPI 域名 + VIP模式,可讀性好,而且換ip方便,推薦模式。

2.2.2、配置集群地址

復制conf/cluster.conf.example為conf/cluster.conf,修改其內容為:

10.49.196.10:8848
10.49.196.11:8848
10.49.196.12:8848

2.2.3、配置數據源

2.2.3.1、使用內置數據源

無需進行任何配置

2.2.3.2、使用外置數據源

修改conf/application.properties文件,增加MySQL配置:

spring.datasource.platform=mysql

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

2.2.4、啟動

2.2.4.1、使用內置數據源
./startup.sh -p embedded
2.2.4.2、使用外置數據源
./startup.sh

2.3、控制台

http://localhost:8848/nacos

用戶名/密碼默認為:nacos/nacos

3、SpringCloud中使用Nacos

3.1、作為注冊中心

3.1.1、引入依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>

3.1.2、增加配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 10.49.196.10:8848

如果是集群的話可以用nginx來負載,這邊配置代理地址。

3.1.3、啟動類增加@EnableDiscoveryClient

啟動服務后就可以進行服務的注冊和發現,在控制台可以看到已注冊的服務:

3.2、作為注冊中心

3.2.1、引入依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>

3.2.2、增加配置

在resources目錄下新建bootstrap.yml文件:

spring:
  cloud:
    nacos:
      config:
        server-addr: 10.49.196.10:8848
        prefix: scdemo-server
        file-extension: yaml
        #group: DEFAULT_GROUP
        #namespace: public

3.2.3、在控制台新建配置

 scdemo-server內容如下:

3.2.4、啟動服務

在服務可以獲取到在nacos中定義的配置項。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM