nacos乙個最常用的功能就是配置中心,在具體使用時往往是多個團隊,甚至整個公司的研發團隊都使用同乙個nacos服務。那麼使用時如何保證配置在各個團隊之間的隔離,又能保證配置管理的便捷性?下面就來介紹乙個我使用下來比較好的實踐方式。
namespace的劃分需要根據具體的開發團隊規模來。
對於一些比較小的公司,開發人員比較少,可能就分成幾個小團隊,每個團隊各自完成自己的開發任務。
對於這種情況,namespace的劃分比較簡單,就是給每個開發團隊各自分配自己的namespace,團隊之間的配置互相隔離。
比如說,現在a公司有4個開發團隊,分別叫做t1、t2、t3和t4。
然後需要將nacos配置成需要認證登入。
nacos.core.auth.enabled=true
nacos.core.auth.caching.enabled=true
給每個開發團隊建立乙個登入使用者
給每個使用者設定許可權,只能訪問自己團隊的命名空間(下面的角色role_t1,只能訪問t1這個namespace)
經過上面的一系列配置之後,每個團隊就只能訪問自己的namespace了,起到了配置隔離的目的。
上面針對的是比較小的開發團隊。那如果開發人員很多呢?比如說像一些大的公司會分成很多bu,每個bu下面會有自己的許多開發團隊。針對這種情況,可以對每個bu進一步進行namespace劃分,比如說將bu1下面的開發劃分成t1、t2、t3,然後對每個團隊的命名空間管理和上面的管理方案一致。
對於一些大的事業部,上面的這種劃分方式其實是很「粗獷」的方式,其實更建議每個事業部維護自己的的nacos服務,這樣可以進行更加精細的劃分。
上面講了namespace的劃分。從上面的劃分規則中,我們可以看出來其實我們是按照團隊的維度來劃分namespace的(官網上面介紹namespace的主要作用是用來劃分租戶的,但是這個租戶是什麼概念並沒有具體說明,那就可以是團隊、可以是bu、甚至是個人,我們這裡以團隊的維度來劃分)。
那就引出乙個問題了:當我們新增配置檔案時,需要指定groupid和dataid。其中groupid從名字上看好像就是團隊id。那是不是說,在同乙個namespace下的配置檔案的groupid都設定成乙個?我覺得這樣不是乙個好的實踐方式。
我們團隊是這樣規劃的。groupid取專案的名字,dataid取模組和環境的組合名字。
舉個栗子:現在bu1-t1團隊在同時開發兩個專案:project1和project2,每個專案都是分多個模組的微服務專案,project1下面有2個模組m1和m2,project2下面分三個模組m1、m2和m3。
那麼可以進行如下的配置:
好了,上面就是我在nacos配置管理上面的實踐。
Nacos 限流最佳實踐
nacos自開源以來,版本迭代速度很快,已經發布了0.9版本,準備發1.0的正式版本,支援企業使用nacos生產高可用。在生產環境,nacos首先需要保證自身服務的穩定性,在正常的執行環境下不會出現服務掛掉的情況。當然在一些依賴的系統出問題的時候 比如磁碟和db nacos服務會受到影響,需要監控系...
軟體配置管理實踐報告
一 什麼是軟體配置管理 是汽車廠的汽車裝配單 是公司軟體資產管理總帳 軟體配置管理不只是被動的填製 而是組織內全體成員 不僅是質量管理人員 共同參與的軟體質量管理過程。二 為什麼要做軟體配置管理 軟體配置管理與軟體質量管理 軟體配置管理是軟體質量管理的組成部分 是軟體質量管理的基線,實行軟體配置管理...
Nacos原始碼之配置管理 本地啟動Nacos
資料庫為mysql spring.datasource.platform mysql 資料庫編號 因為可能配置有多資料來源 主從 nacos內建嵌入式derby資料庫,但是它只適合開發測試中使用,也不利於我們觀察資料 所以我們更改一下資料庫為mysql 在使用mysql之前,需要先建立nacos的資...