Nacos學習(一) —— Nacos配置管理實戰

Nacos簡介

Nacos是阿里巴巴集團開發的一款開源平臺,用於配置/服務發現/服務管理,Nacos可以幫助我們很容易的構建雲本機應用程序和微服務架構。Nacos基本上支持現在所有類型的服務,比如說GRPC/Dubbo服務/SpringCloud Restful服務/Kubernetes服務。

作爲微服務開發人員都應該知道的,Eureka作爲服務註冊中心,總考慮到Eureka的閉源問題,Nacos的出現,程序員們就可以把服務註冊中心改爲Nacos了。

Nacos配置中心-QuickStart

首先增加依賴。

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

bootstrap.yml中增加配置。注意一定要在bootstrap.yml中配置。

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #配置文件後綴默認是properties
  application:
    name: nacos-demo
  profiles:
    active: dev

增加配置類NacosConfig@RefreshScope註解用來動態更新Nacos中最新的配置。

@Data
@Component
@RefreshScope
public class NacosConfig {
    @Value("${your.configuration}")
    private String configuration;
}

測試類。

@RestController
public class TestController {
    @Autowired
    private NacosConfig nacosConfig;

    @GetMapping("/hello")
    public String hello() {
        System.out.println("hello world");
        return nacosConfig.getConfiguration();
    }
}

我們再看下Nacos中的配置。
在這裏插入圖片描述
我們可以看到Data Id需要與配置中的屬性保持一直,即spring.application.name-spring.profiles.active.file-extension

相同應用不同環境配置共享

只需要提取一個以 spring.application.name 命名的配置文件,然後將其所有環境的公共配置放在裏 面即可。例如:
在這裏插入圖片描述
可以被spring.application.name=nacos-demo的所有服務共享。

不同微服務中間共享配置

有的時候我們需要將多個服務相同的配置信息設置成公用配置。例如:
在這裏插入圖片描述
Nacos提供兩種方式配置共享:

  • shared-dataids

    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848 #配置中心地址
            file-extension: yaml #配置文件後綴默認是properties
            # 共享配置的DataId,多個使用,分隔
            # 越靠後,優先級越高
            shared-dataids: common1.yaml
            refreshable-dataids: common1.yaml
      application:
        name: nacos-demo
      profiles:
        active: dev
    
  • ext-config

    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848 #配置中心地址
            file-extension: yaml #配置文件後綴默認是properties
            # 共享配置的DataId,多個使用,分隔
            # 越靠後,優先級越高
            #shared-dataids: common1.yaml
            #refreshable-dataids: common1.yaml
            ext-config:
              - data-id: common1.yaml
                group: DEFAULT_GROUP
                refresh: true
      application:
        name: nacos-demo
      profiles:
        active: dev
    

實例化數據庫

Nacos Server 默認使用的是內嵌的數據庫,生產環境建議修改使用 mysql 數據庫存儲配置信息。

在配置文件application.properties添加配置:

### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://www.xm-fighting.com:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=xm
db.password=hw4372156

創建數據庫,在Nacos Server conf文件夾下,找到nacos-mysql.sql文件,導入創建的數據庫即可。

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