nacos集群的ap cp切換_阿里Nacos-配置-多環境

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

Spring Boot 多環境配置

首先我們來回顧下在Spring Boot中用配置文件的方式怎么進行環境的隔離。

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

為了區分環境我們可以為每個環境創建一個配置文件,比如;

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

在項目部署的時候可以通過 spring.profiles.active=dev 來激活開發環境的配置,通過 spring.profiles.active=test 來激活測試環境的配置。

Apollo 多環境配置

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

Apollo的多環境配置是在搭建的時候需要制定好目前支持多少個環境,每個環境下可以分不同的集群,集群這個是可以動態創建的。

4ae7ec449f41f8cd58bbadead41371cb.png

選擇不同的環境,進行配置的操作,改動的就是這個環境下的配置。

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

Nacos 多環境配置

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

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

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

在Nacos中要實現多環境的隔離,也就是說我們需要創建多個Namespace。

Nacos的最后一個菜單,名稱為:命名空間,點進去我們可以看到下面的列表,可以去創建你想要的空間:

baecbf12fe81832a85fc7c356023085e.png

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

創建空間后,在配置列表的頁面上邊我們可以選擇不同的空間來進行切換。然后在對應的空間下創建配置。

a9af17f6460e4064ae230329d729b437.png

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

nacos.config.namespace=334139e6-d700-4a7b-ae0d-5ae30abd94a8

最好的方式是在部署的時候,通過參數傳遞,如果你直接寫在項目中,那么上線的時候是不是還得修改這個namespace為線上的namespace id。

Apollo在這塊是這樣設計的,環境可以配置在磁盤中的配置文件中,就相當于一臺機器配置一個環境,那么這臺機器上的應用就都是這個環境了,環境跟著機器走,不跟項目走。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446195.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446195.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446195.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 值傳遞機制

說明 案例1 案例2 案例3 案例4 案例5 案例6 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/2 21:24* function 將對象作為參數傳遞給方法*/ public class Circle {double radius;public double findArea() {return Math.PI * Ma…

密碼學專題 非對稱加密算法指令概述 RSA

非對稱加密算法也稱為公開密鑰算法,其解決了對稱加密算法密鑰需要預分配的難題,使得現代密碼學的研究和應用取得了重大發展。非對稱加密算法的基本特點如下: 加密密鑰和解密密鑰不相同;密鑰對中的一個密鑰可以公開(稱為公開密鑰);根據公開密鑰很難推算出…

python元胞自動機模擬交通_結構專欄 | 解析DEFORM軟件中的元胞自動機法

點擊上方藍色字體,關注我們導語金屬材料的性能取決于內部的微觀組織結構,而好的材料性能和價格是產品最大的優勢。隨著現代物理冶金、熱成形技術、熱處理技術和計算機技術的興起與發展,使預測和控制金屬材料熱加工過程中的組織演變成為可能。…

java 遞歸

概念 代碼 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/2 21:42* function 遞歸:求n個數的和、乘積*/ public class Recursion {public static void main(String[] args) {Recursion recursion new Recursion();S…

密碼學專題 非對稱加密算法指令概述 DH算法指令

DH概述 用于密鑰交換的公開算法,廣泛應用于各種安全協議SSL協議同樣支持DH算法DH算法使用之前需要預先共享兩個參數,本原元g和模n,這兩個參數影響到算法的安全性,因此需要預先生成并檢測其安全性生成這些必要參數和管理這些參數的…

java 封裝和隱藏 權限修飾符

概念 問題的引入 封裝性的體現 權限修飾符 案例 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/3 15:28* function*/ public class Person {private int age;public void setAge(int age) { /* if (age<0||age>…

if __name__ == __main___python中 __name__ == #x27;__main__#x27; 有什么作用?

python中if __name__ ‘__main__’ 的作用&#xff0c;到底干嘛的&#xff1f;有句話經典的概括了這段代碼的意義&#xff1a;“Make a script both importable and executable”就是讓你寫的腳本模塊既可以導入到別的模塊中用&#xff0c;另外該模塊自己也可執行。這句話&…

密碼學專題 非對稱加密算法指令概述 DSA算法指令

DSA算法和DSA指令概述 DSA算法是美國國家標準的數字簽名算法&#xff0c;只具備數字簽名的功能不具備密鑰交換的功能生成DSA參數然后生成DSA密鑰&#xff0c;DSA參數決定了DSA密鑰的長度三個指令首先是dsaparam指令&#xff0c;該指令主要用來生成DSA密鑰參數&#xff0c;并提…

每天定時打開某個網頁_Python科普帖定時通知

0 復習上一關我們學習了selenium&#xff0c;它有可視模式與靜默模式這兩種瀏覽器的設置方法&#xff0c;二者各有優勢。然后學習了使用.get(URL)獲取數據&#xff0c;以及解析與提取數據的方法。在這個過程中&#xff0c;我們操作對象的轉換過程&#xff1a;除了上面的方法&am…

java 構造器

概念 案例1 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/3 15:28* function*/ public class Person {private int age;private String name;public Person() {this.age 18;}public Person(int age, String name) {this.age …

密碼學專題 信息摘要和數字簽名指令

信息摘要 區別于對稱加密和非對稱加密&#xff0c;信息摘要算數是一種不可逆的操作&#xff0c;無論輸入數據的大小輸出的數據長度是固定的信息摘要算數對輸入很敏感&#xff0c;即使數據變化很細微&#xff0c;輸出的結果會出現很大的差異從不同輸入得到相同的輸出的概率非常…

dataframe 篩選_Spark.DataFrame與Spark.ML簡介

本文是PySpark銷量預測系列第一篇&#xff0c;后面會陸續通過實戰案例詳細介紹PySpark銷量預測流程&#xff0c;包含特征工程、特征篩選、超參搜索、預測算法。在零售銷量預測領域&#xff0c;銷售小票數據動輒上千萬條&#xff0c;這個量級在單機版上進行數據分析/挖掘是非常困…

密碼學專題 證書和CA指令 證書和CA功能概述

為什么需要證書 實現了公鑰和私鑰的相互驗證&#xff0c;但是任何人都可以生成很多的密鑰對&#xff0c;密鑰對并沒有關聯實體身份&#xff0c;因此誕生可數字證書前提是CA是所有用戶都信任的用戶需要將自己的信息和公鑰交給CA進行認證生成一個屬于自己并被其與用戶認可的數字…

python怎么接外活_java和Python兩門語言,哪個適合接活單干?

謝邀。 根據知乎規矩&#xff1a;不說需求就挑語言的行為就是耍流氓。 如果接的活傾向于OA系統、管理系統之類的&#xff0c;建議是java&#xff0c;畢竟框架模板都很成熟&#xff0c;也比較好找&#xff0c;快速開發什么的在晚上搜一下&#xff0c;改改樣式就可以了。這些項目…

密碼學專題 證書和CA指令 申請證書|建立CA|CA操作|使用證書|驗證證書

Req指令介紹 功能概述和指令格式 req指令一般來說應該是提供給證書申請用戶的工具&#xff0c;用來生成證書請求以便交給CA驗證和簽發證書。但是&#xff0c;OpenSSL的req指令的功能遠比這樣的要求強大得多&#xff0c;它不僅可以生成RSA密鑰、DSA密鑰&#xff0c;以及將它們…

python語言編寫一個生成九宮格圖片的代碼_python實現圖片九宮格分割

大家都知道在微信朋友圈或者微博以及QQ動態中&#xff0c;有很多“強迫癥患者”發圖片都愛發9張&#xff0c;而有些圖是一張圖片分成的九宮圖&#xff0c;對于這種操作&#xff0c;大家知道是怎么做到的嗎&#xff1f; 本文就是用Python做的一個九宮格圖片生成器&#xff0c;是…

密碼學專題 OpenSSL標準轉換指令

概述 繁多復雜的各種文件編碼格式、證書格式和密鑰格式等。事實上&#xff0c;并非OpenSSL開發者想要將數字世界弄得如此令人頭疼&#xff0c;只是由于各種原因&#xff0c;數字世界存在各種不同的標準&#xff0c;為了盡量兼容這些不同的標準&#xff0c;OpenSSL開發者才相應…

java pakage、import關鍵字

package介紹 常用的包 import 案例