Spring Cloud 學習紀要四:Config
Spring Cloud Config:配置中心
普通應用中,當一個系統的配置檔案發生改變時,需要重啟該服務才能使新配置生效。而Spring Cloud Config可以實現微服務中所有系統配置檔案的統一管理,當配置檔案發生變化的時候,系統會自動更新獲取新的配置。
開發環境 | 版本 |
---|---|
IDEA | 2018.2.6 |
JDK | 1.8 |
Spring Boot | 2.1.0 |
Spring Cloud | Greenwich.M1 |
新建配置中心服務
在IDEA中通過Spring Initializr建立專案,選擇Spring Boot 2.1.0版本、選擇Maven依賴Eureka Discovery(Cloud Discovery中)和Config Server(Cloud Config中)。
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
< artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</ dependency>
</dependencies>
加入註解
在入口類新增@EnableEurekaClient和@EnableConfigServer註解。
@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
新增配置
在檔案application.yml新增配置。
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/ #,http://localhost:8762/eureka/
instance:
prefer-ip-address: true
# hostname: ProviderName
instance-id: ${spring.cloud.client.ip-address}:${server.port}
#server:
# port: 8071
spring:
application:
name: config
cloud:
config:
server:
git:
uri: ${your_config_repository} #https://github.com/chung567115/SpringCloudConfig
username: ${your_username}
password: ${your_password}
basedir: ${your_dir} # D:\IDEACode\Spring Cloud\config\basedir
上傳配置檔案
執行config專案
在VM options設定-DServer.port=8071,執行config專案,可以在Eureka頁面看到本專案註冊成功,訪問http://localhost:8071/provider-dev.yml可以看到配置詳情。實際上,我們訪問xxxx/provider-dev.properties或xxxx/provider-dev.json,配置中心都將轉換成對應格式的配置檔案返回。其命名格式為{name}-{profiles}.{type},其中name為檔名,一般定義為專案名;profiles為環境,例如開發環境、測試環境、生產環境等;type為檔案格式,例如yml、properties、json等。
修改客戶端程式碼
匯入Spring Cloud Config客戶端Maven依賴,在provider和consumer專案的pom.xml檔案中加入以下程式碼並reimport:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
為了能在專案啟動的第一時間就應用遠端git的配置,重新命名provider和consumer專案的配置檔案為bootstrap.yml,刪除舊內容,保留必要資訊。
spring:
application:
name: ${project_name} # provider/consumer
# SpringCloudConfig
cloud:
config:
discovery:
enabled: true
service-id: config
profile: dev
執行provider或consumer專案
執行provider或consumer專案,發現專案依然能夠正常註冊和被發現,服務間也能正常通訊,證明遠端配置中心的內容生效。
以上只是達到了統一管理配置,關於修改配置之後如何免重啟自動生效,小博將在《Spring Cloud 學習紀要五:Bus》中講解。
相關推薦
Spring Cloud 學習紀要四:Config
Spring Cloud Config:配置中心 普通應用中,當一個系統的配置檔案發生改變時,需要重啟該服務才能使新配置生效。而Spring Cloud Config可以實現微服務中所有系統配置檔案的統一管理,當配置檔案發生變化的時候,系統會自動更新獲取新的
Spring Cloud 學習紀要一:Eureka
Spring Cloud Eureka:服務治理 Spring Cloud Eureka是Spring Cloud Netflix服務套件中的一部分,它基於Netflix Eureka做了二次封裝,主要負責完成微服務架構中的服務治理,接下來將展示入門Demo
Spring Cloud 入門教程(四): 分布式環境下自動發現配置服務
.html article png discover ice conf label tail 註釋 前一章, 我們的Hello world應用服務,通過配置服務器Config Server獲取到了我們配置的hello信息“hello world”. 但自己的配置文件中必須配
spring cloud 入門系列四:使用Hystrix 實現斷路器進行服務容錯保護
關系 調用 說明 schema 技術 能力 BE 最終 響應 在微服務中,我們將系統拆分為很多個服務單元,各單元之間通過服務註冊和訂閱消費的方式進行相互依賴。但是如果有一些服務出現問題了會怎麽樣? 比如說有三個服務(ABC),A調用B,B調用C。由於網絡延遲或C本身代碼有
Spring Cloud學習--配置中心(Config)
eat dev 一個 要求 str cli 高可用 ans 可用 Spring Cloud學習--配置中心(Config) 一 Spring Cloud Config簡介 二 編寫 Config Server 三 編寫Config Client 四 使用ref
Spring Cloud(十四)Config 配置中心與客戶端的使用與詳細
active html 提交 acl fail 出現 tee ini sdi 前言 在上一篇 文章 中我們直接用了本應在本文中配置的Config Server,對Config也有了一個基本的認識,即 Spring Cloud Config 是一種用來動態獲取Git、SVN、
Spring Cloud之Gateway(四):TLS/SSL、配置、跨域訪問配置、執行器API、開發人員指南及MVC或Webflux搭建Gateway
版本:2.0.2.RELEASE 連結:http://spring.io/projects/spring-cloud-gateway#overview 本章主要目錄如下: Spring Cloud GatewayTLS/SSL是什麼? Spring Cloud
Spring Cloud學習筆記(四)——服務發現與消費之使用Feign
Feign 是一個宣告web服務客戶端,這便得編寫web服務客戶端更容易,使用Feign 建立一個介面並對它進行註解,它具有可插拔的註解支援包括Feign註解與JAX-RS註解,Feign還支援可插拔的編碼器與解碼器,Spring Cloud 增加了對 Spring MVC的
Spring Cloud學習(四)Zuul過濾器詳解
轉載自:http://www.itmuch.com/spring-cloud/zuul/spring-cloud-zuul-filter/ http://blog.didispace.com/spring-cloud-zuul-exception-2/ http://blog
spring cloud學習筆記(一):配置伺服器搭建
要使用spring cloud分散式配置檔案總體上分為3個大的步驟: 1.首選你需要建立存放配置檔案的git倉庫。 2.建立一個配置檔案伺服器,該伺服器將配置檔案資訊轉化為rest介面資料對外提供。 3.建立一個demo應用專案,該專案
Spring Cloud學習筆記 【篇一:分布式配置中心 Spring Colud Config】
16px gin war imp web項目 tps conf name request 一、簡介 Spring Cloud Config提供了在分布式系統的外部配置的客戶端支持。通過配置服務(Config Server)來為所有的環境和應用提供外部配置的集中管理。這些概念
spring學習筆記四:spring常用註解總結
bean logs single 配置文件 屬性註入 ring 如果 let ons 使用spring的註解,需要在配置文件中配置組件掃描器,用於在指定的包中掃描註解 <context:component-scan base-package="xxx.xxx.xxx
spring cloud 入門系列七:基於Git存儲的分布式配置中心--Spring Cloud Config
入門 代碼結構 dev eas TP scope ict AI 新項目 我們前面接觸到的spring cloud組件都是基於Netflix的組件進行實現的,這次我們來看下spring cloud 團隊自己創建的一個全新項目:Spring Cloud Config.它用來為分
spring cloud: Hystrix(四):feign類似於hystrix的斷容器功能
分享 use implement ack all cli req feign ret spring cloud: Hystrix(四):feign使用hystrix @FeignClient支持回退的概念:fallback方法,這裏有點類似於:@HystrixCommand
Spring Boot學習(四):使用@SpringBootTest註解進行單元測試
一、簡介 專案中經常會遇到需要單元測試的情況,那麼SpringBoot如何實現這種需求,使用@SpringBootTest註解可以執行環境,測試後臺程式碼。 二、環境準備 eclipse + maven + Spring Boot 三、程式碼示例 pom.xml
Spring Cloud Eureka(四):Eureka 服務註冊中心配置說明
Eureka Client 配置項(eureka.client.*) org.springframework.cloud.netflix.eureka.EurekaClientConfigBean
Spring的學習(四):Web中的Spring
Spring通常用來開發Web應用。 SpringMVC的執行過程: 我們可以從以下的圖來分析SpringMVC的的執行過程。 1、客戶端在傳送請求的時候,會呼叫DispatcherServlet,Dispatch是SpringMVC的入口,Dispatche
Spring Cloud學習筆記28——訊息驅動的微服務:Spring Cloud Stream
Spring Cloud Stream是一個用來為微服務應用構建訊息驅動能力的框架。它可以基於Spring Boot來建立獨立的、可用於生產的Spring應用程式。它通過使用Spring Integration來連線訊息代理中介軟體以實現訊息事件驅動。Spring Cloud Stream為
Spring Cloud學習筆記27——訊息匯流排:Spring Cloud Bus
訊息匯流排 在微服務架構的系統中,我們通常會使用輕量級的訊息代理來構建一個共用的訊息主題讓系統中所有微服務例項都連線上來,由於該主題中產生的訊息會被所有例項監聽和消費,所以我們稱它為訊息匯流排。 在總線上的各個例項都可以方便地廣播一些需要讓其他連線在該主題上的例項都知道的訊息,例如配
Spring Cloud學習(六)配置中心(Spring Cloud Config)
在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring Cloud中,有分散式配置中心元件spring cloud config ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端