阿里Nacos-配置-多環境

多環境的配置隔離是配置中心最基礎的一個功能之一。不一樣的環境配置的值不同,好比數據庫的信息,業務的配置等。spring

Spring Boot 多環境配置

首先咱們來回顧下在Spring Boot中用配置文件的方式怎麼進行環境的隔離。數據庫

默認咱們都會建立一個application.properties配置文件,這個文件是不區分環境的,通用。bash

爲了區分環境咱們能夠爲每一個環境建立一個配置文件,好比;app

  • 開發環境 application-dev.properties
  • 測試環境 application-test.properties

在項目部署的時候能夠經過 spring.profiles.active=dev 來激活開發環境的配置,經過 spring.profiles.active=test 來激活測試環境的配置。框架

Apollo 多環境配置

既然講到配置中心,那麼我會已目前已經比較成熟的Apollo來進行一個對比,把一些相同的或者不一樣的點都分析出來,這樣你們在選型的時候也能有個參考。測試

Apollo的多環境配置是在搭建的時候須要制定好目前支持多少個環境,每一個環境下能夠分不一樣的集羣,集羣這個是能夠動態建立的。spa

選擇不一樣的環境,進行配置的操做,改動的就是這個環境下的配置。設計

在客戶端接入的時候,經過指定env來獲取對應環境下的配置,還有一點就是Apollo中每一個環境的配置都是用DB來隔離的,每一個環境都有本身的一個ConfigDB。3d

Nacos 多環境配置

Namespace用於進行租戶粒度的配置隔離。不一樣的命名空間下,能夠存在相同的 Group 或 Data ID 的配置。Namespace 的經常使用場景之一是不一樣環境的配置的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。code

以上是官方對Nacos Namespace的介紹,若是用過Apollo的同窗應該知道,在Apollo中的Namespace是配置文件的概念,跟Nacos的概念定義相差太大了。

而Nacos中配置文件的定義則是Data ID,在學任何一個框架的時候,首先要搞懂的就是它自己的一些概念。

在Nacos中要實現多環境的隔離,也就是說咱們須要建立多個Namespace。

Nacos的最後一個菜單,名稱爲:命名空間,點進去咱們能夠看到下面的列表,能夠去建立你想要的空間:

public是默認的,咱們建立了一個dev環境,這個時候會生成一條數據,咱們須要關注的是命名空間ID,爲了防止命名空間名稱衝突,在保存後會自動生成一個ID,項目中在指定當前環境的時候須要傳空間ID,而不是空間名稱。

建立空間後,在配置列表的頁面上邊咱們能夠選擇不一樣的空間來進行切換。而後在對應的空間下建立配置。

最後在咱們的項目中,咱們是以Spring Boot來進行講解的,就在application.properties中指定當前項目的空間值便可:

nacos.config.namespace=334139e6-d700-4a7b-ae0d-5ae30abd94a8
複製代碼

最好的方式是在部署的時候,經過參數傳遞,若是你直接寫在項目中,那麼上線的時候是否是還得修改這個namespace爲線上的namespace id。

Apollo在這塊是這樣設計的,環境能夠配置在磁盤中的配置文件中,就至關於一臺機器配置一個環境,那麼這臺機器上的應用就都是這個環境了,環境跟着機器走,不跟項目走。

猿天地
相關文章
相關標籤/搜索