apollo使用場景2


使用apollo登錄成功之后

我們登錄到apollo的管理控制台頁面

 

 點擊系統信息,在系統信息里面我們可以看到當前當前環境下面部署了多少台configserver、adminserver等信息

 

點擊check,監控監控組件的可用性

接下來點擊系統參數,在系統參數應用配置 (維護ApolloPortalDB.ServerConfig表數據,如果已存在配置項則會覆蓋,否則會創建配置項。配置更新后,一分鍾后自動生效),對ApolloPortalDB.ServerConfig表中的屬性可以在頁面上進行修改,例如我要修改ApolloPortalDB中支持的環境信息,操作如下

 

 直接在頁面上面輸入apollo.portal.envs,然后修改value的值就可以

 

 這里一定要注意的是,修改系統屬性的值,只能是默認的超級管理員apollo這個用戶才能修改

系統管理員默認是apollo,只能系統管理員才能夠看到下面的菜單

 

 

創建應用、刪除應用也只能apollo這個超級管理員才能操作

 

 接下來下面我們要創建用戶,創建用戶必須apollo默認提供一個超級管理員: apollo,可以自行添加用戶

 

 接下來我們要創建項目,除了apollo這個超級管理員能操作創建項目,默認情況下我們創建的用戶默認都具有創建項目的權限。如果我們想僅僅只有超級管理員和我們制定的用戶具有創建項目的權限。我們在系統菜單,系統權限管理中設定

 

 

 

 

 第一步需要在系統參數中設置開啟只有超級管理員和制定的用戶才能創建應用項目

系統參數中設置 role.create-application.enabled=true 會限制只有超級管理員和擁有創建應用權限的帳號可以創建項目

 

 

 設置之后在在數據庫apollodb中就看到增加了一條記錄

 

 

我們給我們新創建的王五添加創建應用的權限

 

 

 

 我們使用王五登錄,就可以看到王五具有創建應用的菜單

 

 接下來我們創建應用點擊“創建項目”:account-service,我們使用王五創建應用

. 輸入項目信息
部門:選擇應用所在的部門
應用AppId:用來標識應用身份的唯一id,格式為string,需要和項目配置文件applications.properties
中配置的app.id對應
應用名稱:應用名,僅用於界面展示
應用負責人:選擇的人默認會成為該項目的管理員,具備項目權限管理、集群創建、Namespace創建等
權限

 

 這里王五創建的項目,我們給張三分配了應用負責人,那么張三就擁有了項目管理員權限,張三可以在這個應用下面進行項目的管理,創建集群。namespace。以及給用戶分配授權,這里王五雖然創建了應用,但是他不是項目管理員權限,所有使用王五登錄是無法在account-service這個應用下面創建集群、namespace的

項目創建成功之后,進入項目可以看到當前的應用默認已經有了兩個環境、dev、pro

 

 我們使用王五登錄,王五在應用下面是無法創建集群和namespace,無法進行項目管理的

 

 點擊項目管理會彈出無法進行項目管理的操作權限

 

 

雖然王五沒有項目管理員權限,不能管項目、不能創建集群、不能創建namespace,但是因為王五是應用的創建者,默認王五具有創建配置項和發布配置項的權限

 

 

接下來,我們使用項目管理員張三登錄系統

因為張三是項目負責人,可以看到菜單下面會多一個授權的按鈕

 

 

同理作為超級管理員apollo,登錄進來也可以在account-service中看到授權按鈕

 

 

 

 

接下來我們來驗證下應用負責人和應用項目管理員的區別

我們創建了一個電商系統的應用,應用負責人是李國勝。項目的管理是李文波,默認情況下應用負責人是默認具有改項目管理員角色的,項目管理員一個應用有多個

但是應用的負責人只有一個,例如一個應用用於負責人只能是一個李國勝,但是項目的具體管理員可以有未元、李文波

 

 

 

 我們在項目管理員里面默認可以看到當前項目的項目管理員是李國勝和李文波,只有項目管理員才具有當前應用創建集群、namespace的權限

 這里需要特別注意的是只有項目的管理員才能用戶項目的管理權限,項目的負責人沒有項目的管理權限,這里我們項目的管理員還是李國勝和李文波,我們把項目負責人修改為未元

我們使用未元登錄,是無法看到weiyuantest電商系統這個應用的,因為未元雖然是項目負責人,但是沒有項目管理員的角色。默認情況下在創建應用的時候,應用負責人是默認具有項目管理員的角色的,

但是也會存在后應用負責人變更的情況,例如創建weiyutest這個應用時候默認的應用負責人是李國勝,默認李國勝是具有項目管理員角色的,現在應用負責人變更為了未元,我們要把項目負責人變更為未元,並且要在上面的管理員菜單上面將李國勝這個管理員刪除掉,添加未元具有項目管理員角色

 

 

 

 

  接下來項目管理員創建成功之后,接下來我們是未元登錄

 

 

 

 

 

 

 點擊管理項目,我們進去看下會彈出項目管理的頁面

 

 我們可以指定當前項目的項目管理員和修改項目的基本信息

這里指定項目管理員的這個功能非常重要,apollo支持只有超級管理員和默認的管理員才能給項目分配管理員,默認情況下現在weiyuantest這個應用具有兩個項目管理員未元、李文波,二者都可以在給

應用添加項目管理員的功能,如果我們要設定只有未元能夠添加項目管理員、李文波不能添加管理員,當李文波登錄應用之后點擊項目管理,不顯示管理員這個菜單如何實現了

我們使用超級管理員apollo登錄

 

 我們這這里設置,設置只有apollo和未元這個兩個賬號才具有給應用分配項目管理員角色的功能

操作如下,首先第一步使用apollo賬號登錄,在系統參數中 role.manage-app-master.enabled設置為true

 

 

第二步使用apollo賬號登錄,在系統權限分配中設置只有哪些賬號能夠能夠分配項目管理員角色,我們添加只有未元能夠分配項目管理員角色

 

 這樣當未元登錄weiyutest的時候,我們看的頁面如下

 

 李文波是項目管理員,但是沒有給項目管理員分配項目管理員的功能

 

這里還需要注意一個點,列如我們修改項目負責人為金晉明,但是金晉明是沒有項目管理員角色的,金晉明登錄的時候是無法訪問到電商這個系統的,如果要訪問,需要給金晉明分配項目管理員這個角色

我們使用未元這個管理員登錄,我們來驗證其他的功能

未元具有項目管理員這個角色,這個角色具備下面的功能:

1、能夠進行項目管理,給當前的應用分配應用管理員角色、能夠修改應用的基本信息

2、能夠在當前應用下面創建集群、創建namespace

3、能夠給當前的應用授權,運行哪些人能夠創建配置項、哪些人審核配置項,創建配置項和審核配置項可以屬於不同的人

我們要講講授權功能

默認情況下,我們可以看到未元雖然是項目管理員,但是他是沒有創建配置項和發布配置項的按鈕,如何要分配創建配置項和發布配置項的功能,需要點擊授權按鈕,進行配置

 

 

我們使用未元登錄,因為未元是項目管理員能夠給當前的應用分配創建配置項和發布配置項的權限,我們分配未元具有發布配置項和管理配置項的權限,授權如下

 

 我們再次重新使用未元登錄訪問weiyuantest這個項目,我們可以看到這里新增加了發布和新增配置項兩個按鈕

 

 我們也可以這樣進行分配,一個人有創建配置項但是沒有發布的權限,需要另外一個人要審核。這就是這句話的作用:應用和配置的管理都有完善的權限管理機制,對配置的管理還分為了編輯和發布兩個環節,從而減少人為的錯誤

接下來要刪除我們創建的weiyuantest這個項目,需要使用apollo這個超級管理員才能刪除項目

如果要刪除整個項目,點擊右上角的“管理員工具--》刪除應用、集群...”
首先查詢出要刪除的項目,點擊“刪除應用

 

 

 

 接下來我們進行配置的管理

在weiyuantest項目中進行配置。 首先使用未元登錄,然后選中你要在那個環境下面創建配置,我們選中在dev環境下面創建配置

 

 4.4.4 添加Namespace

私鑰的Namespace 只能被當前應用訪問,公共的namespace可以讓多個應用所共享,對於公共的namespace應用可以通過關聯公共namespace來覆蓋公共Namespace的配置

namespace是應用下面配置的分類

Namespace作為配置的分類,可當成一個配置文件。
以添加rocketmq配置為例,添加“spring-rocketmq” Namespace配置rocketmq相關信息。

以添加redis配置為例,添加“spring-redis” Namespace配置redis相關信息。
1. 添加項目私有Namespace:spring-rocketmq
進入項目首頁,點擊左下腳的“添加Namespace”,共包括兩項:關聯公共Namespace和創建Namespace,
這里選擇“創建Namespace

 

 

 

 這里選擇private說明當前的spring-rocketmq這個配置是私有的只能被當前的應用weiyuantest所訪問,如果選擇為public,說明當前的配置是公共的,其他任何應用都可以訪問,spring-rocketmq這個私鑰的namespace創建成功之后,接下來會跳轉到下面的頁面,因為namespace下面可以增加配置項和發布配置項,所以需要給給namespace指定那些人可以在改namespace下面發布配置,哪些人可以在改namespace下面發布配置

 

 接下來應用的主頁面就可以看見我們創建的私有的namespace了

 

 接下來我們也可以創建一個公共的namespace,叫spring-redis,只需要選擇的時候選擇為public就可以了,創建成功之后回到應用的主頁面,我們可以看到下面的信息

 

我們在redis這個namespace下面創建幾個配置項

 

 

 

這里我在補充一點:現在是在weiyuantest這個應用中我們創建了一個spring-redis這個公共的配置,公共的配置項apollo的客戶端是能夠訪問任何應用的公共配置的,如何其他的應用如果需要修改公共配置的值,那么在其他的應用中需要關聯spring-redis這個公共namespace的值了,然后對里面的值進行覆蓋

 

 

 

 

 

 

我們登錄另外一個系統,我們選擇account-service這個應用

 

 然后在account-service應用下面我們選擇創建namespace,然后選擇關聯公共的namespace,就可以選擇上面weiyuantest創建的spring-test這個公共的namespace了

 

 

 

 

 

 

 結論:通過命名空間(namespace)可以很方便地支持多個不同應用共享同一份配置,同時還允許應用對共享
的配置進行覆蓋

接下來我們要創建集群

在有些情況下,應用有需求對不同的集群做不同的配置,比如部署在A機房的應用連接的RocketMQ服務器地址和
部署在B機房的應用連接的RocketMQ服務器地址不一樣。另外在項目開發過程中,也可為不同的開發人員創建不
同的集群來滿足開發人員的自定義配置。

我們來創建一個名稱為集群1的集群

創建成功之后回到主頁面我們可以看到我們創建的集群的信息

 

 對於集群有一個集群同步的功能

同步集群的配置是指在同一個應用中拷貝某個環境下的集群的配置到目標環境下的目標集群。
1. 從其他集群同步已有配置到新集群
切換到原有集群
展開要同步的Namespace,點擊同步配置

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM