日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

淺析Apollo配置中心

來源: 責編: 時間:2023-12-22 17:13:55 320觀看
導讀Labs 導讀隨著程序功能的日益復雜,程序的配置日益增多。各種功能的開關、參數的配置、服務器的地址等,對程序的配置提出了更高的要求,比如,配置修改后實時生效,灰度發布,分環境、分集群管理配置,完善的權限、審核機制等。Spr

R6b28資訊網——每日最新資訊28at.com

Labs 導讀

隨著程序功能的日益復雜,程序的配置日益增多。各種功能的開關、參數的配置、服務器的地址等,對程序的配置提出了更高的要求,比如,配置修改后實時生效,灰度發布,分環境、分集群管理配置,完善的權限、審核機制等。SpringBoot項目大多使用@Value注解或者@ConfigurationProperties注解讀取配置信息,線上項目經常需要對某些配置進行調整。R6b28資訊網——每日最新資訊28at.com

Part 01、  為什么需要配置中心  

- 配置實時生效R6b28資訊網——每日最新資訊28at.com

傳統的靜態配置方式要想修改某個配置,只能修改之后重新發布應用,要實現動態性,可以選擇使用數據庫,通過定時輪詢訪問數據庫來感知配置的變化。輪詢頻率低感知配置變化的延時就長,輪詢頻率高,感知配置的變化延時就短,但比較損耗性能,需要在實時性和性能之間做折中。配置中心專門針對這個業務場景,兼顧實時性和一致性來管理動態配置。R6b28資訊網——每日最新資訊28at.com

- 配置管理流程R6b28資訊網——每日最新資訊28at.com

配置的權限管理、灰度發布、版本管理、格式校驗和安全配置等一系列配置管理相關的特性也是配置中心不可或缺的一部分。R6b28資訊網——每日最新資訊28at.com

Part 02、  什么是Apollo 

Apollo(阿波羅)是一款可靠的分布式配置管理中心,誕生于攜程框架研發部,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景。R6b28資訊網——每日最新資訊28at.com

Part 03、  功能介紹  

? 統一管理不同環境、不同集群的配置R6b28資訊網——每日最新資訊28at.com

  • Apollo提供了一個統一界面集中式管理不同環境(environment)、不同集群(cluster)、不同命名空間(namespace)的配置。
  • 同一份代碼部署在不同的集群,可以有不同的配置,比如zk的地址等。
  • 通過命名空間(namespace)可以很方便的支持多個不同應用共享同一份配置,同時還允許應用對共享的配置進行覆蓋。
  • 配置界面支持多語言(中文,English)。

? 配置修改實時生效(熱發布)R6b28資訊網——每日最新資訊28at.com

  • 用戶在Apollo修改完配置并發布后,客戶端能實時(1秒)接收到最新的配置,并通知到應用程序。

? 版本發布管理R6b28資訊網——每日最新資訊28at.com

  • 所有的配置發布都有版本概念,從而可以方便的支持配置的回滾。

? 灰度發布R6b28資訊網——每日最新資訊28at.com

  • 支持配置的灰度發布,比如點了發布后,只對部分應用實例生效,等觀察一段時間沒問題后再推給所有應用實例。

? 權限管理、發布審核、操作審計R6b28資訊網——每日最新資訊28at.com

  • 應用和配置的管理都有完善的權限管理機制,對配置的管理還分為了編輯和發布兩個環節,從而減少人為的錯誤。
  • 所有的操作都有審計日志,可以方便的追蹤問題。

? 客戶端配置信息監控R6b28資訊網——每日最新資訊28at.com

  • 可以方便的看到配置在被哪些實例使用。

? 提供Java和.Net原生客戶端R6b28資訊網——每日最新資訊28at.com

  • 提供了Java和.Net的原生客戶端,方便應用集成。
  • 支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便應用使用(需要Spring 3.1.1+)。
  • 同時提供了Http接口,非Java和.Net應用也可以方便的使用。

? 提供開放平臺APIR6b28資訊網——每日最新資訊28at.com

  • Apollo自身提供了比較完善的統一配置管理界面,支持多環境、多數據中心配置管理、權限、流程治理等特性。
  • 不過Apollo出于通用性考慮,對配置的修改不會做過多限制,只要符合基本的格式就能夠保存。
  • 在我們的調研中發現,對于有些使用方,它們的配置可能會有比較復雜的格式,如xml, json,需要對格式做校驗。
  • 還有一些使用方如DAL,不僅有特定的格式,而且對輸入的值也需要進行校驗后方可保存,如檢查數據庫、用戶名和密碼是否匹配。
  • 對于這類應用,Apollo支持應用方通過開放接口在Apollo進行配置的修改和發布,并且具備完善的授權和權限控制。

? 部署簡單R6b28資訊網——每日最新資訊28at.com

  • 配置中心作為基礎服務,可用性要求非常高,這就要求Apollo對外部依賴盡可能地少。
  • 目前唯一的外部依賴是MySQL,所以部署非常簡單,只要安裝好Java和MySQL就可以讓Apollo跑起來。
  • Apollo還提供了打包腳本,一鍵就可以生成所有需要的安裝包,并且支持自定義運行時參數。

Part 04、 架構設計 

4.1 基礎模型R6b28資訊網——每日最新資訊28at.com

如下即是Apollo的基礎模型:R6b28資訊網——每日最新資訊28at.com

  • 用戶在配置中心對配置進行修改并發布。
  • 配置中心通知Apollo客戶端有配置更新。
  • Apollo客戶端從配置中心拉取最新的配置、更新本地配置并通知到應用。

圖片圖片R6b28資訊網——每日最新資訊28at.com

4.2 架構模塊R6b28資訊網——每日最新資訊28at.com

如下即是Apollo架構模塊的概覽:R6b28資訊網——每日最新資訊28at.com

  • Portal:英文意思為門戶,在架構中充當的角色為管理端,用戶通過該模塊對配置進行修改。
  • PortalDB:存儲一些環境變量、配置環境等信息的數據庫。注意,該庫不存儲配置信息。
  • Admin Service:負責接收Portal發送過來的配置信息,對配置信息進行修改。
  • ConfigDB:儲存配置信息的數據庫。
  • Client:配置信息使用者,通常為微服務。
  • Config Service:負責定期從數據庫(ConfigDB)中拉取配置信息,若有變化,推送給客服端。或是客戶端定期利用該服務拉取配置信息。
  • Eureka:注冊中心,無論Conifg Service還是Admin Service,在實際使用中都是部署在多臺服務器上的。因此,對于客戶端或者門戶管理端而言,建立兩個服務的連接都需要通過注冊中心發現服務地址后再連接。
  • Meta Service:從Eureka獲取Config Service和Admin Service的服務信息,相當于是一個Eureka Client,增設一個Meta Server的角色主要是為了封裝服務發現的細節,對Portal和Client而言,永遠通過一個Http接口獲取Admin Service和Config Service的服務信息,而不需要關心背后實際的服務注冊和發現組件。

圖片圖片R6b28資訊網——每日最新資訊28at.com

Part 05、  服務端設計  

在配置中心中,一個重要的功能就是配置發布后實時推送到客戶端。下圖即是配置發布后的實時推送設計:R6b28資訊網——每日最新資訊28at.com

1.用戶在Portal操作配置發布。R6b28資訊網——每日最新資訊28at.com

2.Portal調用Admin Service的接口操作發布。R6b28資訊網——每日最新資訊28at.com

3.Admin Service發布配置后,發送ReleaseMessage給各個Config Service。R6b28資訊網——每日最新資訊28at.com

4.Config Service收到ReleaseMessage后,通知對應的客戶端。R6b28資訊網——每日最新資訊28at.com

圖片R6b28資訊網——每日最新資訊28at.com

Part 06、  客戶端設計  

下圖描述了Apollo客戶端的實現原理:R6b28資訊網——每日最新資訊28at.com

1.客戶端和服務端保持了一個長連接,從而能第一時間獲得配置更新的推送(通過Http Long Polling實現)。R6b28資訊網——每日最新資訊28at.com

2.客戶端還會定時從Apollo配置中心服務端拉取應用的最新配置。R6b28資訊網——每日最新資訊28at.com

a.這是一個fallback機制,為了防止推送機制失效導致配置不更新。R6b28資訊網——每日最新資訊28at.com

b.客戶端定時拉取會上報本地版本,所以一般情況下,對于定時拉取的操作,服務端都會返回304 - Not Modified。R6b28資訊網——每日最新資訊28at.com

c.定時頻率默認為每5分鐘拉取一次,客戶端也可以通過在運行時指定System Property: apollo.refreshInterval來覆蓋,單位為分鐘。R6b28資訊網——每日最新資訊28at.com

3.客戶端從Apollo配置中心服務端獲取到應用的最新配置后,會保存在內存中。R6b28資訊網——每日最新資訊28at.com

4.客戶端會把從服務端獲取到的配置在本地文件系統緩存一份。R6b28資訊網——每日最新資訊28at.com

a.在遇到服務不可用,或網絡不通的時候,依然能從本地恢復配置。R6b28資訊網——每日最新資訊28at.com

5.應用程序可以從Apollo客戶端獲取最新的配置、訂閱配置更新通知。R6b28資訊網——每日最新資訊28at.com

圖片R6b28資訊網——每日最新資訊28at.com

Part 07、  結束語 

在“約定優于配置,配置優于編碼”的開發理念下,通過Apollo配置中心,程序員不需要每次更改線上配置都要重新發布服務,成功實現了將配置與編碼解耦,為線上服務變更配置提供了解決方案。R6b28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-52189-0.html淺析Apollo配置中心

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 在三分鐘內學習二分查找

下一篇: 國產 PCIe4.0 SSD 新品圣誕登場:佰維 NV7400, 4TB 可選!

標簽:
  • 熱門焦點
  • Find N3入網:最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經正式入網,型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 消息稱迪士尼要拍真人版《魔發奇緣》:女主可能也找黑人演員

    8月5日消息,迪士尼確實有點忙,忙著將不少動畫改成真人版,繼《美人魚》后,真人版《白雪公主》、《魔發奇緣》也在路上了。據外媒消息稱,迪士尼將打造真人版
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 得物效率前端微應用推進過程與思考

    一、背景效率工程隨著業務的發展,組織規模的擴大,越來越多的企業開始意識到協作效率對于企業團隊的重要性,甚至是決定其在某個行業競爭中突圍的關鍵,是企業長久生存的根本。得物
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • iQOO Neo8 Pro搶先上架:首發天璣9200+ 安卓性能之王

    經過了一段時間的密集爆料,昨日iQOO官方如期對外宣布:將于5月23日推出全新的iQOO Neo8系列新品,官方稱這是一款擁有旗艦級性能調校的作品。隨著發布時
  • iQOO Neo8 Pro真機諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
Top 主站蜘蛛池模板: 旬邑县| 天祝| 磴口县| 旅游| 蓬莱市| 新沂市| 嘉兴市| 敖汉旗| 张掖市| 永嘉县| 石嘴山市| 中宁县| 开鲁县| 武义县| 新巴尔虎右旗| 淮北市| 仁化县| 永德县| 察哈| 梅河口市| 微博| 土默特左旗| 德州市| 呼图壁县| 安陆市| 全州县| 荆州市| 焦作市| 高唐县| 佛学| 万源市| 金寨县| 哈密市| 余江县| 辽宁省| 张家界市| 卓资县| 溆浦县| 勐海县| 彰武县| 淮北市|