欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用svn+SpringCloudConfig來(lái)做配置中心

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

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

1、添加依賴(lài)

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-config-server</artifactId>
	</dependency>
	<dependency>
		<groupId>org.tmatesoft.svnkit</groupId>
		<artifactId>svnkit</artifactId>
	</dependency>
</dependencies>

需要多引入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、啟動(dòng)類(lèi)

啟動(dòng)類(lèi)沒(méi)有變化,添加@EnableConfigServer激活對(duì)配置中心的支持

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

4、測(cè)試

服務(wù)端測(cè)試

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

客戶(hù)端測(cè)試

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

refresh

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

修改spring-cloud-config-client項(xiàng)目已到達(dá)可以refresh的功能。

1、添加依賴(lài)

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

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

2、 開(kāi)啟更新機(jī)制

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

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

3、測(cè)試

springboot 1.5.X 以上默認(rèn)開(kāi)通了安全認(rèn)證,所以需要在配置文件application.properties添加以下配置

management.security.enabled=false

OK 這樣就改造完了,以post請(qǐng)求的方式來(lái)訪(fǎng)問(wèn)http://localhost:8002/refresh 就會(huì)更新修改后的配置文件。

我們?cè)俅蝸?lái)測(cè)試,首先訪(fǎng)問(wèn)http://localhost:8002/hello,返回:hello im dev,我將庫(kù)中的值修改為hello im dev update。在win上面打開(kāi)cmd執(zhí)行curl -X POST http://localhost:8002/refresh,返回["neo.hello"]說(shuō)明已經(jīng)更新了neo.hello的值。我們?cè)俅卧L(fǎng)問(wèn)http://localhost:8002/hello,返回:hello im dev update,客戶(hù)端已經(jīng)得到了最新的值。

每次手動(dòng)刷新客戶(hù)端也很麻煩,有沒(méi)有什么辦法只要提交代碼就自動(dòng)調(diào)用客戶(hù)端來(lái)更新呢,github的webhook是一個(gè)好的辦法。

4、webhook

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

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

如何使用svn+Spring Cloud Config來(lái)做配置中心

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

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

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

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

events事件類(lèi)型描述

push倉(cāng)庫(kù)有push時(shí)觸發(fā)。默認(rèn)事件

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

delete當(dāng)有分支或標(biāo)簽被刪除時(shí)觸發(fā)

svn也有類(lèi)似的hook機(jī)制,每次提交后會(huì)觸發(fā)post-commit腳本,我們可以在這里寫(xiě)一些post請(qǐng)求。

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

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

網(wǎng)站標(biāo)題:如何使用svn+SpringCloudConfig來(lái)做配置中心
標(biāo)題路徑:http://chinadenli.net/article26/gepijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站用戶(hù)體驗(yàn)標(biāo)簽優(yōu)化品牌網(wǎng)站設(shè)計(jì)靜態(tài)網(wǎng)站網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司