2.1 公共組件和普通應用的區別
公共組件是指那些發佈給其它應用使用的客戶端代碼,比如CAT客戶端、Hermes Producer客戶端等。
雖然這類組件是由其他團隊開發、維護,但是運行時是在業務實際應用內的,所以本質上可以認爲是應用的一部分。
(前提是這些組件也使用apollo進行動態配置)
通常情況下,這類組件所用到的配置由原始開發團隊維護,不過由於實際應用的運行時、環境各不一樣,所以我們也允許應用在實際使用時能夠覆蓋公共組件的部分配置。
2.2 公共組件接入步驟
(此處建議直接跳到2.3,因爲這裏的接入步驟跟(一)中都是一樣的,唯一區別是下面標紅的地方)
公共組件的接入步驟,和普通應用幾乎一致,唯一的區別是公共組件需要創建自己唯一的Namespace。
所以,首先執行普通應用接入文檔中的以下幾個步驟,然後再按照本章節後面的步驟操作。
2.2.1 創建Namespace
創建Namespace需要項目管理員權限,如果發現沒有添加Namespace按鈕,可以找項目管理員授權。
-
點擊頁面左側的添加Namespace
-
點擊“創建新的Namespace”
-
輸入公共組件的Namespace名稱,需要注意的是Namespace名稱全局唯一
- Apollo會默認把部門代號添加在最前面
-
點擊提交後,頁面會自動跳轉到關聯Namespace頁面
- 首先,選中所有需要有這個Namespace的環境和集羣,一般建議全選
- 其次,選中剛剛創建的namespace
- 最後,點擊提交
5. 關聯成功後,頁面會自動跳轉到Namespace權限管理頁面
1. 分配修改權限
2. 分配發布權限
6. 點擊“返回”回到項目頁面
2.2.2 添加配置項
編輯配置需要擁有這個Namespace的編輯權限,如果發現沒有新增配置按鈕,可以找項目管理員授權。
2.2.2.1 通過表格模式添加配置
-
點擊新增配置
-
輸入配置項
-
點擊提交
2.2.2.3 通過文本模式編輯
這部分和普通應用一致,具體步驟請參見1.3.2 通過文本模式編輯。
2.2.3 發佈配置
配置只有在發佈後纔會真的被應用使用到,所以在編輯完配置後,需要發佈配置。
發佈配置需要擁有這個Namespace的發佈權限,如果發現沒有發佈按鈕,可以找項目管理員授權。
-
點擊“發佈按鈕”
-
填寫發佈相關信息,點擊發布
2.2.4 應用讀取配置
配置發佈成功後,應用就可以通過Apollo客戶端讀取到配置了。
Apollo目前提供Java客戶端,具體信息請點擊Java客戶端使用文檔:
如果應用使用了其它語言,也可以通過直接訪問Http接口獲取配置,具體可以參考其它語言客戶端接入指南
對於公共組件的配置讀取,可以參考上述文檔中的“獲取公共Namespace的配置”部分。
2.3 應用覆蓋公用組件配置步驟
前面提到,通常情況下,公共組件所用到的配置由原始開發團隊維護,不過由於實際應用的運行時、環境各不一樣,所以我們也允許應用在實際使用時能夠覆蓋公共組件的部分配置。
這裏就講一下應用如何覆蓋公用組件的配置,簡單起見,假設apollo-portal應用使用了hermes producer客戶端,並且希望調整hermes的批量發送大小。
2.3.1 關聯公共組件Namespace
-
進入使用公共組件的應用項目首頁,點擊左側的添加Namespace按鈕
- 所以,在這個例子中,我們需要進入apollo-portal的首頁。
- (添加Namespace需要項目管理員權限,如果發現沒有添加Namespace按鈕,可以找項目管理員授權)
2. 找到hermes producer的namespace,並選擇需要關聯到哪些環境和集羣
3. 關聯成功後,頁面會自動跳轉到Namespace權限管理頁面
- 分配修改權限
2. 分配發布權限
3. 點擊“返回”回到項目頁面
2.3.2 覆蓋公用組件配置
1. 點擊新增配置
2. 輸入要覆蓋的配置項
3. 點擊提交
2.3.3 發佈配置
配置只有在發佈後纔會真的被應用使用到,所以在編輯完配置後,需要發佈配置。
發佈配置需要擁有這個Namespace的發佈權限,如果發現沒有發佈按鈕,可以找項目管理員授權。
1. 點擊“發佈按鈕”
2. 填寫發佈相關信息,點擊發布
3. 配置發佈成功後,hermes producer客戶端在apollo-portal應用裏面運行時讀取到的sender.batchSize的值就是1000。