簡介
spring cloud是為微服務架構提供了一整套的技術方案,包括
服務發現註冊、配置中心、訊息匯流排、負載均衡、斷路器、資料監控等。
其中spring cloud config 是spring cloud 的子專案,為專案提供乙個高可用的分布式配置中心。
專案功能
config server的架構圖如下:
spring cloud config 專案:
1.提供服務端和客戶端支援。
2.集中式管理分布式環境下的應用配置。
3.基於spring 環境,無縫與spring應用整合。
4.可用於 任何 語言開發的程式。
5.預設實現基於git倉庫,可以進行版本管理。
6.可替換 自定義實現。
spring cloud config server作為配置中心服務端:
1.拉取配置時更新git倉庫副本,保證是最新結果。
2.支援資料結構豐富,yml,json,properties 等。
3.配合eureke可實現服務發現,配合cloud bus可實現配置推送更新。
4.配置儲存基於git倉庫,可進行版本管理。
5.簡單可靠,有豐富的配套方案。
spring cloud config client 預設客戶端實現:
springboot 專案不需要改動任何**,加入乙個啟動配置檔案指明使用 configserver 上哪個配置檔案即可。
技術分析
配置中心
管理後台
github star 儲存
服務發現
推送更新 回滾
spring cloud config
沒有(git管理介面)
675git或svn
eureke 支援
支援
有 3226
mysql
zookeeper 支援
不支援apollo(攜程) 有
2914
mysql
eureke 支援
支援
配置中心
客戶端 文件
開發框架
配置新增
依賴元件
spring cloud config 有
部署文件
使用文件
spring boot
介面呼叫初始化
git管理頁面新增配置檔案
eureke
cloud bus
git 有
部署文件
使用文件
spring mvc
後台新增
zookeeper
mysql
apollo(攜程) 有
部署文件
使用文件
開發文件
spring boot
後台新增
eureke
mysql
eureke:spring cloud 的乙個子專案,為服務提供服務註冊中心。
spring cloud bus:spring cloud 的乙個子專案,訊息匯流排,將分布式的節點用輕量的訊息**連線起來。它可以用於廣播配置檔案的更改或者服務之間的通訊,也可以用於監控。
滿足配置中心要求(遠端統一配置、高可用)。
具有回滾配置功能(git的特性)。
spring cloud生態,與spring專案完美相容。
繼承spring boot的優勢(簡單、易部署、配置少)
屬於spring cloud 生態,社群強大、版本迭代快
3.2缺點
沒有後台管理,需要git管理後台支援來進行配置管理。
穩定性取決於git服務的穩定性。
新專案,使用人數一般(中小型應用)
因為沒有管理後台,無法檢視配置被哪些服務使用
部署集群必須是能訪問git服務(同一內網或git服務提供外網位址)
不支援灰度發布
專案部署
進入spring-cloud-config-server 執行mvn spring-boot:run
預設埠是8888
就啟動完畢了, 訪問
說明服務已經正常啟動了。
ps:如果出現錯誤:
cannot determine embedded database driver class for database type none
需要在啟動入口加上:
再重新啟動就可以了。
專案中提供了乙個測試專案spring-cloud-config-sample
啟動這個專案mvn spring-boot:run
預設埠是8080
測試是否能正常
獲取遠端配置中心的配置:
返回:spring cloud samples 資料正常。
檢視info.description 這個配置:
可以訪問
先看一共有多少種訪問方式:
profile:表示獲取指定環境下配置,例如開發環境、測試環境、生產環境 預設值default,實際開發中可以是 dev、test、demo、production等
lable: git標籤,預設值master
總結
使用spring cloud config 需要對spring boot 有一定的了解,熟悉spring boot的開發模式和配置方式。專案是基於spring boot開發的,整個專案配置簡單、部署方便。
充分利用了git的特性,如版本、分支和回滾等。使得配置中心可以支援多環境配置、配置後回滾等功能。
如果微服務是使用spring cloud開發,可以使用 spring cloud config 作為遠端配置中心來管理整個集群服務的配置,達到統一配置、統一管理。
spring cloud config基本使用
spring cloud config 是乙個分布式配置中心,用來為分布式系統中的基礎設施和微服務應用提供集中化的外部配置支援,它分為服務端與客戶端兩個部分。其中服務端用來連線配置倉庫並為客戶端提供獲取配置資訊,加密 解密資訊等訪問介面 而客戶端則是微服務架構中的各個微服務應用或基礎設施,它們通過指...
spring cloud config手動重新整理配置
我們管理分布式應用時,希望可以將遠端配置檔案庫的變化同步更新到應用中,要實現這個功能需要以下幾個步驟 1.在pom.xml檔案中新增actuor依賴 org.springframework.bootgroupid spring boot starter actuatorartifactid depe...
SpringCloud config 配置中心
spring cloud config為服務端和客戶端提供了分布式系統的外部化配置支援。配置伺服器為各應用的所有環境提供了乙個中心化的外部配置。一般外部配置檔案存在github.com上。下面是config的 實現 新建配置中心模組 配置pom org.springframework.cloud s...