一、 搭建配置中心
首先在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應用 ...