spring cloud config 技術調研

2021-08-11 21:01:22 字數 3532 閱讀 5716

簡介

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...