您好,登錄后才能下訂單哦!
本篇文章為大家展示了SpringCloud-Apollo分布式配置中心的核心概念及核心功能介紹是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景。
服務端基于 Spring Boot 和 Spring Cloud 開發,打包后可以直接運行,不需要額外安裝 Tomcat 等應用容器。
Java 客戶端不依賴任何框架,能夠運行于所有 Java 運行時環境,同時對 Spring/Spring Boot 環境也有較好的支持。
Apollo 提供了一個統一界面,集中式管理不同環境(environment)、不同集群(cluster)、不同命名空間(namespace)的配置。
同一份代碼部署在不同的集群,可以有不同的配置,比如 zk 的地址等。通過命名空間(namespace)可以很方便地支持多個不同應用共享同一份配置,同時還允許應用對共享的配置進行覆蓋。
用戶在 Apollo 修改完配置并發布后,客戶端能實時(1s)接收到最新的配置,并通知到應用程序。
所有的配置發布都有版本概念,從而可以方便地支持配置的回滾。
支持配置的灰度發布,比如點擊發布后,只對部分應用實例生效,等觀察一段時間,確定沒問題后再推給所有應用實例。
應用和配置的管理都有完善的權限管理機制,對配置的管理還分為編輯和發布兩個環節,從而減少人為的錯誤。
所有的操作都有審計日志,方便追蹤問題。
可以方便地看到配置被哪些實例使用。
提供了 Java 和 .Net 的原生客戶端,方便應用集成。支持 Spring Placeholder、Annotation 和 Spring Boot 的 ConfigurationProperties,方便應用使用(需要 Spring 3.1.1+)。
同時提供了 Http 接口,非 Java 和 .Net 應用也可以方便地使用。
Apollo 自身提供了比較完善的統一配置管理界面,支持多環境、多數據中心配置管理、權限、流程治理等特性。不過 Apollo 出于通用性考慮,對配置的修改不會做過多限制,只要符合基本的格式就能夠保存。
在我們的調研中發現,對于有些使用方,它們的配置可能會有比較復雜的格式,如 xml、json,需要對格式做校驗。還有一些使用方如 DAL,不僅有特定的格式,而且針對輸入的值也需要進行校驗后方可保存,如檢查數據庫、用戶名和密碼是否匹配。
對于這類應用,Apollo 支持應用方通過開放接口在 Apollo 進行配置的修改和發布,并且具備完善的授權和權限控制。
配置中心作為基礎服務,對可用性要求非常高,這就需要 Apollo 對外部依賴盡可能地少。
目前唯一的外部依賴是 MySQL,所以部署非常簡單,只要安裝好 Java 和 MySQL 就可以讓 Apollo 跑起來。
Apollo 還提供了打包腳本,一鍵就可以生成所有需要的安裝包,并且支持自定義運行時的參數。
應用就是我們的項目,Apollo 客戶端在運行時需要知道應用的標識,從而可以根據這個標識去配置中心獲取對應的配置。應用的標識用 APPid 來指定,指定 APPid 的方式有多種,Spring Boot 項目中建議直接配置在 application.properties 中,跟著項目走。
環境就是常見的開發、測試、生產等,不同的環境對應的配置內容不一樣。Apollo 客戶端在運行時除了需要知道項目當前的身份標識,還需要知道當前項目對應的環境,從而可以根據環境去配置中心獲取對應的配置。
指定項目當前環境的方式有多種,可以通過 Java System Property 或者配置文件來指定。
目前支持的環境有 Local(本地環境,加載本地配置)、DEV(開發環境)、FAT(測試環境)、UAT(集成環境)、PRO(生產環境)。
在多機房的環境下,針對不同的機房,我們可以劃分出不同的集群,集群可以擁有不同的配置。指定項目對應集群的方式有多種,可以通過 Java System Property 或者配置文件來指定。
命名空間可以用來對配置做分類,不同類型的配置存放在不同的命名空間中,如數據庫配置文件、消息隊列配置、業務相關的配置等。命名空間還有一個公共的特性,那就是讓多個項目共用同一份配置,比如 Redis 集群配置。
通過權限控制可以防止配置被不相干的人誤操作。對于開發人員,可以只分配測試環境的修改權限和發布權限,只有負責人才能有正式環境的權限。
上述內容就是SpringCloud-Apollo分布式配置中心的核心概念及核心功能介紹是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。