天天看點

Apollo選型及優勢介紹

Apollo選型及優勢介紹

1.白話什麼是Apollo

相當于微服務中的配置中心,如nacos等,可以将springboot中yml檔案統一管理起來,且大部配置設定置修改後可以直接生效。

相比于nacos,Apollo更加的重量級,功能也更加強大(相對的也更加複雜)。Apollo提供了豐富的權限設定,環境配置。

在選擇時,如果您隻需要簡單的管理配置,并不需要多環境,沒有多部門多使用者協作,也不需要使用者權限,隻是小廠,請無腦選擇nacos,否則請選擇Apollo。

2.Apollo的優勢

1.統一管理不同環境、不同叢集的配置

Apollo提供了一個統一界面集中式管理不同環境(environment)、不同叢集(cluster)、不同命名空間(namespace)的配置。

2.權限管理、釋出稽核、操作審計

應用和配置的管理都有完善的權限管理機制,對配置的管理還分為了編輯和釋出兩個環節,進而減少人為的錯誤。

3.配置修改實時生效(熱釋出)

使用者在Apollo修改完配置并釋出後,用戶端能實時(1秒)接收到最新的配置,并通知到應用程式。

4.版本釋出管理

所有的配置釋出都有版本概念,進而可以友善的支援配置的復原。

5.灰階釋出

支援配置的灰階釋出,比如點了釋出後,隻對部分應用執行個體生效,等觀察一段時間沒問題後再推給所有應用執行個體。

6.用戶端配置資訊監控

可以在界面上友善地看到配置在被哪些執行個體使用

7.功能強大

支援緩存,支援郵件模闆。在配置釋出時候,可以釋出資訊郵件通知到相關的負責人。#

8.部署簡單

配置中心作為基礎服務,可用性要求非常高,這就要求Apollo對外部依賴盡可能地少

目前唯一的外部依賴是MySQL,是以部署非常簡單,隻要安裝好Java和MySQL就可以讓Apollo跑起來

Apollo還提供了打包腳本,一鍵就可以生成所有需要的安裝包,并且支援自定義運作時參數

3.用途執行個體

項目位址:GitHub - apolloconfig/apollo-use-cases: 展示Apollo配置中心的各種使用場景和示例代碼,歡迎大家把日常工作中的更多配置使用案例分享出來!

展示Apollo配置中心的各種使用場景和示例代碼,目前包含了以下示例項目:

  1. spring-boot-logger:示範Spring Boot Logging如何通過Apollo配置中心實作動态調整Logging Level
  2. spring-cloud-logger:示範Spring Boot Logging在Spring Cloud環境下如何通過Apollo配置中心友善地實作動态調整Logging Level
  3. spring-cloud-zuul:示範Spring Cloud Zuul如何通過Apollo配置中心實作動态路由
  4. spring-cloud-zuul-ratelimit:示範Spring Cloud Zuul的第三方限流插件
  5. marcosbarbero/spring-cloud-zuul-ratelimit如何通過Apollo配置中心實作動态限流
  6. spring-cloud-gateway:示範Spring Cloud Gateway如何通過Apollo配置中心實作動态路由
  7. spring-boot-encrypt:示範如何結合jasypt-spring-boot實作Apollo中存儲加密配置
  8. dynamic-datasource:示範Spring Boot預設的HikariCP DataSource如何通過Apollo配置中心實作動态切換資料源(其它類型的DataSource也是類似的,可以依樣畫葫蘆)
  9. dubbo: 示範Dubbo如何通過Apollo配置中心實作中心化配置
  10. spring-boot-dubbo: 示範Dubbo Spring Boot Starter如何通過Apollo配置中心實作中心化配置

    該項目同時也示範了如何通過apollo管理logback的配置,詳見logback-spring.xml

  11. netflix-archaius: 示範Netflix Archaius如何使用Apollo配置中心作為其服務端使用
  12. sentinel: 示範Sentinel如何通過Apollo配置中心實作中心化流控規則配置
  13. properties-keeper: 示範如何通過apollo管理啟動前需要加載的properties檔案配置
  14. spring-boot-agent: 示範如何通過java agent探針技術實作應用無縫接入Apollo配置中心

    與spring cloud config優勢

4.項目的可用性考慮

需要的場景:

  1. 提供統一的管理配置的接口,且提供可視化界面。
  2. 支援熱部署,更改立刻生效。
  3. 支援叢集。
  4. 不停機更新。(動态更改路由)
  5. 優秀的性能。見以上性能報告
  6. 日志記錄與復原功能。(防止實施人員扯皮)
  7. 代碼開源 如需要可以定制開發 (成本較大)

以上需求Apollo都有解決方案。