前言:Apollo(阿波羅)是攜程研發的開源配置管理中心,能夠集中管理應用不同環境、不同集群的配置,同一環境統一集群的配置下有namespace概念,具體資訊官方檔案如下:
- namespace是配置項的集合,類似于一個組態檔的概念,
- application的namespace:Apollo在創建專案的時候,都會默認創建一個“application”的namespace,顧名思義,“application”是給應用自身使用的,
- namespace的格式:組態檔有多種格式,例如:properties、xml、yml、yaml、json等,同樣的,namespace也有具有這些格式,
- 非properties格式的namespace,在客戶端使用時需要呼叫
ConfigService.getConfigFile(String namespace, ConfileFormat configFileFormat)來獲取;如果使用http介面呼叫時,對應的namespace引數需要傳入namespace的名字加上后綴名,如datasources.json. apollo-client 1.3.0版本開始對yaml/yml做了更好的支持,使用起來和properties格式一致:Config config = ConfigService.getConfig("application.yml");,Spring的注入方式也和properties一致,
- 非properties格式的namespace,在客戶端使用時需要呼叫
- namespace的獲取權限分類(這里的獲取權限是相對于Apollo客戶端來說的)
- private:只能被所屬應用獲取到,一個應用嘗試獲取其他應用private的namespace,Apollo會報“404”例外,
- Public :能被任何應用獲取,http請求直接傳public的集群+namespace名稱,就可以獲取到公共配置,
- namespace的型別
- 私有型別:具有private權限,
- 公共型別:具有public權限,公共型別的namespace通過名稱標識,因此名稱必須全域唯一,具體使用場景如下:
- 部門級別共享的配置
- 小組級別共享的配置
- 幾個專案之間共享的配置
- 中間件客戶端的配置
- 關聯型別:又稱為繼承型別,具有
private權限,關聯型別的name space繼承于公共型別的name space,用于覆寫公共namespace的某些配置,
原文:https://github.com/ctripcorp/apollo/wiki/Apollo核心概念之“Namespace”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/228509.html
標籤:其他
