真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用svn+SpringCloudConfig來做配置中心

這篇文章主要介紹“如何使用svn+Spring Cloud Config來做配置中心”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“如何使用svn+Spring Cloud Config來做配置中心”文章能幫助大家解決問題。

10年積累的網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有德陽免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1、添加依賴


	
		org.springframework.cloud
		spring-cloud-config-server
	
	
		org.tmatesoft.svnkit
		svnkit
	

需要多引入svnkitr包

2、配置文件

server:
  port: 8001
 
spring:
  cloud:
    config:
      server:
        svn:
          uri: http://192.168.0.6/svn/repo/config-repo
          username: username
          password: password
        default-label: trunk
  profiles:
    active: subversion
  application:
    name: spring-cloud-config-server

和git版本稍有區(qū)別,需要顯示聲明subversion.

3、啟動類

啟動類沒有變化,添加@EnableConfigServer激活對配置中心的支持

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {
 
	public static void main(String[] args) {
		SpringApplication.run(ConfigServerApplication.class, args);
	}
}

4、測試

服務(wù)端測試

訪問:http://localhost:8001/neo-config-dev.properties,返回:neo.hello: hello im dev,說明服務(wù)端可以正常讀取到svn代碼庫中的配置信息。修改配置文件neo-config-dev.properties中配置信息為:neo.hello=hello im dev update,再次在瀏覽器訪問http://localhost:8001/neo-config-dev.properties,返回:neo.hello: hello im dev update。說明server端會自動讀取最新提交的內(nèi)容

客戶端測試

客戶端直接使用上一篇示例項目spring-cloud-config-client來測試,配置基本不用變動。啟動項目后訪問:http://localhost:8002/hello,返回:hello im dev update說明已經(jīng)正確的從server端獲取到了參數(shù)。同樣修改svn配置并提交,再次訪問http://localhost:8002/hello``依然獲取的是舊的信息,和git版本的問題一樣。

refresh

現(xiàn)在來解決上一篇的遺留問題,這個問題在svn版本中依然存在。Spring Cloud Config分服務(wù)端和客戶端,服務(wù)端負責(zé)將git(svn)中存儲的配置文件發(fā)布成REST接口,客戶端可以從服務(wù)端REST接口獲取配置。但客戶端并不能主動感知到配置的變化,從而主動去獲取新的配置??蛻舳巳绾稳ブ鲃荧@取新的配置信息呢,springcloud已經(jīng)給我們提供了解決方案,每個客戶端通過POST方法觸發(fā)各自的/refresh。

修改spring-cloud-config-client項目已到達可以refresh的功能。

1、添加依賴


  org.springframework.boot
  spring-boot-starter-actuator

增加了spring-boot-starter-actuator包,spring-boot-starter-actuator是一套監(jiān)控的功能,可以監(jiān)控程序在運行時狀態(tài),其中就包括/refresh的功能。

2、 開啟更新機制

需要給加載變量的類上面加載@RefreshScope,在客戶端執(zhí)行/refresh的時候就會更新此類下面的變量值。

@RestController
@RefreshScope // 使用該注解的類,會在接到SpringCloud配置中心配置刷新的時候,自動將新的配置更新到該類對應(yīng)的字段中。
class HelloController {
 
    @Value("${neo.hello}")
    private String hello;
 
    @RequestMapping("/hello")
    public String from() {
        return this.hello;
    }
}

3、測試

springboot 1.5.X 以上默認開通了安全認證,所以需要在配置文件application.properties添加以下配置

management.security.enabled=false

OK 這樣就改造完了,以post請求的方式來訪問http://localhost:8002/refresh 就會更新修改后的配置文件。

我們再次來測試,首先訪問http://localhost:8002/hello,返回:hello im dev,我將庫中的值修改為hello im dev update。在win上面打開cmd執(zhí)行curl -X POST http://localhost:8002/refresh,返回["neo.hello"]說明已經(jīng)更新了neo.hello的值。我們再次訪問http://localhost:8002/hello,返回:hello im dev update,客戶端已經(jīng)得到了最新的值。

每次手動刷新客戶端也很麻煩,有沒有什么辦法只要提交代碼就自動調(diào)用客戶端來更新呢,github的webhook是一個好的辦法。

4、webhook

WebHook是當某個事件發(fā)生時,通過發(fā)送http post請求的方式來通知信息接收方。Webhook來監(jiān)測你在Github.com上的各種事件,最常見的莫過于push事件。如果你設(shè)置了一個監(jiān)測push事件的Webhook,那么每當你的這個項目有了任何提交,這個Webhook都會被觸發(fā),這時Github就會發(fā)送一個HTTP POST請求到你配置好的地址。

如此一來,你就可以通過這種方式去自動完成一些重復(fù)性工作,比如,你可以用Webhook來自動觸發(fā)一些持續(xù)集成(CI)工具的運作,比如Travis CI;又或者是通過 Webhook 去部署你的線上服務(wù)器。下圖就是github上面的webhook配置。

如何使用svn+Spring Cloud Config來做配置中心

Payload URL :觸發(fā)后回調(diào)的URL

Content type :數(shù)據(jù)格式,兩種一般使用json

Secret :用作給POST的body加密的字符串。采用HMAC算法

events :觸發(fā)的事件列表。

events事件類型描述

push倉庫有push時觸發(fā)。默認事件

create當有分支或標簽被創(chuàng)建時觸發(fā)

delete當有分支或標簽被刪除時觸發(fā)

svn也有類似的hook機制,每次提交后會觸發(fā)post-commit腳本,我們可以在這里寫一些post請求。

這樣我們就可以利用hook的機制去觸發(fā)客戶端的更新,但是當客戶端越來越多的時候hook支持的已經(jīng)不夠優(yōu)雅,另外每次增加客戶端都需要改動hook也是不現(xiàn)實的。

關(guān)于“如何使用svn+Spring Cloud Config來做配置中心”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。


文章題目:如何使用svn+SpringCloudConfig來做配置中心
標題網(wǎng)址:http://weahome.cn/article/gepijg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部