配置中心化

2021-09-29 07:21:02 字數 2163 閱讀 2766

現實場景

傳統應用打包部署, 會在不同的環境配置不同的包, 如local環境, dev環境, 測試環境, uat環境, 生產環境分別製作不同的發布包,

每個包裡環境特定配置.每一次部署都要修改配置檔案, 提交審核**, 才能打包, 非常的不方便. 相信很多朋友和我一樣碰到過這種問題. 如果是共用環境, 由於環境問題, 經常會導致乙個甚至多個team成員處於pending狀態.

痛點:配置散亂格式不統一

有的用properties, 有的用xml 或 yml 等, 還有存在db裡, 團隊傾向自己造輪子, 反正是五花八門,

主要採用本地靜態檔案, 配置修改麻煩

配置修改一般需要經過乙個較長的測試發布週期, 在分布式環境下, 當服務例項很多的時候, 修改配置費時費力

容易引發生產事故

在發布的時候將測試環境配置帶到生產上,這種示例屢見不鮮.

配置缺乏安全審計和版本控制

誰改的配置? 改了什麼? 什麼時候改的? 天哪誰知道改了配置影響別人的什麼服務? 出了問題及時回滾吧.

由此分布式配置中心應運而生, 現在市面上開源的配置中心有

1.spring出品: spring-cloud/spring-cloud-config

2.螞蟻金服專家發起:disconf

3.攜程出品: apollo

今天和大家聊的是第三個由上海攜程出品的開源分布式配置中心apollo, 名字非常的高大上叫阿波羅(讓人聯想起了美國登月計畫)

隨著應用程式配置日益增多複雜, 各種功能開關, 引數配置, 伺服器位址等對於應用配置的期望也越來越高, 配置修改後實施生效, 灰度發布, 分環境, 分集群管理, 完善許可權機制, 審核機制等.在這樣的大背景下,傳統的靜態配置檔案,資料庫等方式已經越來越無法滿足配置管理的需求.

apollo的亮點

configservice

提供配置獲取介面

提供配置推送介面

服務於apollo客戶端

2.adminservice

提供配置管理介面

提供配置修改發布介面

無語管理介面portal

3.client

為應用獲取配置,支援實時更新

通過metaserver獲取configservice服務列表

使用客戶端軟負載 slb方式呼叫configservice

4.portal

配置管理介面

通過metaserver獲取adminservice的服務列表

使用客戶端軟負載slb方式呼叫adminservice

三個輔助服務模組

eureka

用於服務發現和註冊

config/adminservice註冊例項並定期匯報心跳

和configservice住在一起部署

metaserver

portal通過網域名稱訪問metaserver獲取adminservice的位址列表

client通過網域名稱訪問met啊server獲取configservice位址列表

邏輯角色和configservice在一起部署

nginxlb

和網域名稱系統配合,協助portal訪問metaserver獲取adminservice位址列表

和網域名稱系統配合,協助client訪問metaserver獲取configservice位址列表

和網域名稱系統配合,協助使用者訪問portal進行配置管理

有些概念不是一下子就能明白的, 需要在實際專案中遇見後才會思考這類問題如何去解決, apoll給了我們乙個很好的方案

功能特性:

靜態配置管理

動態配置管理

統一管理,不同環境不同配置

配置快取

配置校驗

配置生效時效

配置更新推送

配置定時拉取

使用者許可權管理

授權, 審計,審核

配置版本管理

配置合規檢測

例項配置監控

灰度發布

告警通知

依賴關係

demo環境:

賬號/密碼:apollo/admin

參考文獻:

為什麼要做介面測試

jmeter資料庫操作

jmeter介面測試-正規表示式

jmeter中文返回亂碼

jmeter介面測試-引數化

jmeter介面測試-基礎

測試-感想

Spring Cloud (十八) 服務化配置中心

前提 構建乙個服務註冊中心,可參考 spring cloud 一 搭建服務註冊中心 構建乙個配置中心config server,可參考 spring cloud 十六 通過spring cloud config構建配置中心 構建乙個客戶端對映config client,可參考 spring clou...

中心化和去中心化

中心化和去中心化 分布式的架構中,同乙個服務會部署若干服務節點,在面對具體服務請求時,怎麼決定由哪個節點來提供服務,根據實現方案分為中心化和去中心化兩種方式。中心化 在開源中介軟體codis的集群組網中,應用對快取節點的訪問都通過codis的proxy 由 來決定資料儲存到哪個節點上 這種分布式的組...

網路配置中心

配置中心 pom 配置依賴 org.springframework.cloud spring cloud config server server port 你的埠 spring cloud config server git uri gtihub 官網倉庫路徑配置中心的main 讀取配置中心 en...