SpringCloud 分布式配置中心

2021-10-06 13:20:06 字數 3353 閱讀 8395

一、 搭建配置中心

首先在pom檔案中引入配置中心相關的jar包

org.springframework.cloud

spring-cloud-config-server

2.2.0.release

編寫yml檔案

server:

port: 3344

spring:

name: cloud-config-center

cloud:

config:

server:

git:

uri: [email protected]:leesin-one/springcloud-config.git // ssh鏈結的方式

search-paths:

- springcloud-config #搜尋目錄.這個目錄指的是github上的目錄

label: master #讀取分支

eureka:

client:

service-url:

defaultzone:

關於github相關的配置,首先需要建立乙個倉庫然後,然後在本地gti bash中輸入命令

ssh-keygen -m pem -t rsa -b 4096 -c "[email protected]" // 建立乙個公鑰

cat /c/users/lenovo/.ssh/id_rsa.pub // 檢視公鑰,將公鑰的內容放到github的ssh驗證上,就可以訪問成功

主啟動類

@enableconfigserver // 開啟配置中心

public class configcenter }

然後輸入下面的位址就可以訪問了

localhost:3344/master(代表哪乙個分支)/config(應用名)-dev(屬性名).yml
二、搭建配置客戶端

首先引入客戶端相關的配置

org.springframework.cloud

spring-cloud-starter-config

2.2.0.release

yml檔案內容

server:

port: 3355

spring:

name: config-client

cloud:

#config客戶端配置

config:

label: master #分支名稱

name: config #配置檔案名稱

profile: dev #讀取字尾名稱 上訴3個綜合就是 master分支上 config-dev.yml

uri: http://localhost:3344 # 去配置服務中心的地方

eureka:

client:

service-url:

defaultzone:

controller:

@restcontroller

public class connfigclient ")

private string configinfo;

public string getconfiginfo()

}

主啟動類:

@enableeurekaclient

public class configserver3355 }

這樣乙個配置客戶端就搭建完成但是會出現無法實時更新的情況所以為了避免這種情況的出現需要做如下更改

首先在pom檔案中新增監控模組:

org.springframework.boot

spring-boot-starter-actuator

在yml設定端點暴露

#暴露監控端點

management:

endpoints:

web:

exposure:

include: "*"

在controller新增 @refreshscope 註解,但是這樣還是不能進行實時同步,所以還需要向controller傳送乙個post請求進行重新整理才能完成,

這樣雖然做到了實時重新整理,但是面對數量龐大的機器時不可能這樣做所以需要引入訊息匯流排進行訊息的發布,訊息匯流排實際上就是乙個訊息佇列,可以進行廣播進行設定。 

三、 springcloud-bus  訊息匯流排

1. 服務端

首先需要匯入相關的jar包

org.springframework.cloud

spring-cloud-starter-bus-amqp

2.2.1.release

然後進行rabbitmq相關的檔案配置

spring:

rabbitmq:

host: localhost

port: 5672 #rabbit相關配置 15672是web管理介面的埠,5672是mq訪問的埠

username: guest

password: guest

management: #rabbitmq相關設定 ,暴露 bus重新整理配置的端點

endpoints:

web:

exposure:

include: 'bus-refresh'

2.消費端

首先也需要匯入上面的jar包,也進行如下配置

spring:

rabbitmq:

host: localhost

port: 5672

username: guest

password: guest

management: #暴露監控端點

endpoints:

web:

exposure:

include: "*"

然後在cmd中輸入命令進行全域性訊息的發布

# 進行區域性通知

curl -x post "http://localhost:3344/actuator/bus-refresh/config-client:3355" 服務名+埠號

這時再訪問客戶端配置資訊就會同步。

SpringCloud 分布式配置

我們一般把配置檔案寫在專案中直接獲取相關引數 spring cloud config實現的配置中心預設採用git來儲存配置資訊,所以使用spring cloud config構建的配置伺服器,天然就支援對微服務應用配置資訊的版本管理,並且可以通過git客戶端工具來方便的管理和訪問配置內容。1.配置倉...

springcloud分布式配置中心

本文是對內容做些應用 1.bootstrap.properties檔案內容 必須與配置中心中的檔案字首一致 開啟健康檢查 需要spring boot starter actuator依賴 eureka.client.healthcheck.enabled true 續約更新時間間隔 預設30秒 eu...

SpringCloud 分布式知識學習

target elementtype.type retention retentionpolicy.runtime documented inherited enablediscoveryclient enablecircuitbreaker 乙個註解引用三個註解,標示這是springboot應用 ...