nacos配置中心

綜述

最近項目升級使用Spring Cloud Alibaba,在使用nacos的時候發現官方文檔寫的非常含糊,網上的資料坑也很多,特整理一份給初學者使用
但是對於初學者來說看官網還是非常重要的
https://nacos.io/zh-cn/docs/what-is-nacos.html

什麼是Nacos

說人話就是可以把各個服務都註冊到註冊中心,服務之間就可以使用nacos互相調用;原本在項目的配置文件可以放到nacos中統一管理,本文主要講配置中心的使用

下載Nacos

https://github.com/alibaba/nacos/releases
在nacos/bin文件夾下執行
啓動命令:nohup sh startup.sh -m standalone &
停止命令:./shutdown.sh

啓動成功後訪問http://127.0.0.1:8848/nacos/index.htm輸入賬號密碼,默認都是nacos

可以執行下面兩個命令看看配置中心是否可用
新寫了一個配置文件,項目有時候會讀取不到,可以重啓nacos試試

curl -X POST “http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=HelloWorld”

curl -X POST “http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=HelloWorld”

項目Maven

	<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		<version>2.1.1.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
		<version>2.1.1.RELEASE</version>
	</dependency>

項目配置

需要在原本 application.yml 處新建一個 bootstrap.yml
文件,它會比application.yml文件先執行。

項目配置使用需要一個格式
官方原文
在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}

prefix 默認爲 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。
spring.profile.active 即爲當前環境對應的 profile,詳情可以參考 Spring Boot文檔。 注意:當 spring.profile.active 爲空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 prefix.{prefix}.{file-extension}
file-exetension 爲配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。

翻譯一下就是需要一個三段的格式

server-name-dev.yml

這個名字就是後面要在nacos裏創建的 Data ID

spring:

  application:
    name: service-name  #這裏就是你要註冊到nacos裏的服務名字

  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml  #這個代表你的文件類型
  profiles:
    active: dev  #這個代表你的環境  開發環境dev 

Nacos裏新建配置

進入nacos頁面
在這裏插入圖片描述
在這裏插入圖片描述
這裏的Data ID就是上面拼出來的名字
類型選擇YAML
下面就可以把原來application.yml裏的配置信息放到這裏來了

拖到下面點擊發布

命名空間

如果服務多起來,可以給服務註冊和配置中心配一個命名空間
除了命名空間,還有Group和 歸屬應用 可以配置
命名空間看過去最直觀

在這裏插入圖片描述

新增一個命名空間再切換到配置列表,頂部就可以切換命名空間
bootstrap.yml 裏只需要多配一行代碼就能使用

spring:

  application:
    name: service-name  #這裏就是你要註冊到nacos裏的服務名字

  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: xxxxxxxx-xxxx-4517-b589-4e45eedfc111 #這裏就是填命名空間id 
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml  #這個代表你的文件類型
        namespace: xxxxxxxx-xxxx-4517-b589-4e45eedfc111
  profiles:
    active: dev  #這個代表你的環境  開發環境dev 

Nacos持久化

目前Nacos僅支持Mysql數據庫,且版本要求:5.6.5+
nacos/conf目錄裏有一個初始化文件:nacos-mysql.sql
創建一個數據庫 執行這個sql
打開同目錄的 application.properties 文件,在底部新增配置,
注意修改數據連接

spring.datasource.platform=mysql

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

重啓項目再配置的文件就會存儲到 mynacos中的數據庫表 config_info裏面

Nacos通過集中式存儲來保證數據的持久化,同時也爲Nacos集羣部署奠定了基礎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章