Spring Cloud 微服務之配置中心解決方案

2021-10-09 06:26:05 字數 1309 閱讀 9111

關於配置中心這一篇博文,本來想分很多篇去介紹的,但是仔細想想,覺得太繁複而且囉嗦,所以還是寫一篇介紹其中的核心原理,並不做任何示例,如果想要檢視具體用法可以自行檢視官方文件或者度娘。因為配置中心太多了,不說其他的spring cloud就整合了好幾種框架作為配置中心比如:spring cloud config, archaiu,consul, spring cloud zookeeper ,alibaba nacos等。每個公司都有不同的選擇,不可能一一的去列舉,重點是掌握核心,當遇到新的配置中心的時候能夠快速入手。

配置中心顧名思義,就是所有配置的中心。就是我們將所有服務的配置,通過配置中心儲存到資料庫或者其他地方,而應用服務則是從配置中心拉取去配置。在這裡它一般分為服務端和客戶端,服務端用於我們新增修改配置,客戶端用於應用從配置服務拉取配置。一般情況下配置服務分為兩種模式,一種為拉取配置,第二種為推送配置。就是客戶端定時從配置伺服器拉取最新的配置,推送配置則是配置更新後,配置伺服器將更新的配置推送到對應的應用服務。

......

collectionexceptionreporters = new arraylist<>();

......

listeners.starting();

try

上面的**中prepareenvironment

方法用於為

spring boot執行環境提供配置,在spring中所有的配置最終由environment例項管理。我們檢視

prepareenvironment

方法的原始碼如下:

// create and configure the environment

configurableenvironment environment = getorcreateenvironment();

listeners.environmentprepared(environment);

if (!this.iscustomenvironment)

configurationpropertysources.attach(environment);

return environment;}

在上面的**中,一部分是處理配置檔案中的配置,另一部分是通過

處理配置,

是配置中心的基礎,客戶端可以通過實現的

本篇部落格只是介紹spring cloud 配置中心的原理,以及實現方式,並不介紹配置中心的使用,後續在介紹spring cloud alibaba時會簡單的介紹alibaba nacos配置中心的使用。不管怎麼說配置中心的實現都是萬變不離其宗,包括服務的拉取、推送和更新。而這些又都是結合spring boot進行的。上面的兩部分**是核心。

微服務之springcloud

分布式架構的概念 多個子模組相互協作才能完成業務流程,系統之間需要進行通訊。優點 1 把模組拆分,使用介面通訊,降低模組之間的耦合度。2 把專案拆分成若干個子專案,不同團隊負責不同子專案。3 增加功能時只需要再增加子專案,呼叫其他系統的介面 4 可以靈活進行分布式部署 缺點 1 系統之間互動需要使用...

SpringCloud微服務之 Ribbon

ribbon簡介 需要解決的問題 如何在配置eureka client註冊中心時不去硬編碼eureka server的位址?在微服務不同模組間進行通訊時,如何不去硬編碼服務提供者的位址?當部署多個相同微服務時,如何實現請求時的負載均衡?實現負載均衡方式1 通過伺服器端實現負載均衡 nginx rib...

SpringCloud微服務之OpenFeign

在之前進行微服務的呼叫用的是ribbon resttemplate,就像這樣 這樣呼叫微服務是更偏向面向restfull風格,但偏離了面向介面程式設計 使用openfeign,openfeign底層還是用的ribbon。新增openfeign依賴 org.springframework.cloudg...