ssh服務配置,spring cloud config-配置中心

 2023-11-19 阅读 30 评论 0

摘要:? ? ? ? ?在咱們日常開發中,對于一些信息的配置加載一般都不會在代碼中寫死,而是通過一些配置動態加載。對于springcloud來說就是通過config來獲取配置中心的配置信息來實現的。那么怎么實現一個配置中心? 一、配置中心地址 ? ? ? ? 選擇一個配置中心地

? ? ? ? ?在咱們日常開發中,對于一些信息的配置加載一般都不會在代碼中寫死,而是通過一些配置動態加載。對于springcloud來說就是通過config來獲取配置中心的配置信息來實現的。那么怎么實現一個配置中心?

一、配置中心地址

? ? ? ? 選擇一個配置中心地址,我這里選的得是github,新建一個項目,簡單配置即可。

? ? ? ?咱們一般開發都分三個環境:開發、測試、和線上環境。新建三個文件將相應配置添加就可以了。

?

?

文件內容就隨便了,比如我的:

?

ssh服務配置,?

二、服務端

? ? ? ?有了配置地址后就該獲取配置信息了。新建一個maven項目,作為config服務端,負責從配置地址讀取相應配置(這里配置地址為自己的github),建好之后導入向管依賴。

需要的依賴:

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

?

依賴添加完成后,創建一個啟動類,啟動類上需要添加一個注解:?@EnableConfigServer

在resources文件里面,新建一個bootstrap.yml文件

spring cloud 搭建。bootstrap.yml填寫配置信息

spring:application:name: config-servercloud:config:server:git:uri: https://github.com/LISHENGDRUNK/config-repo-demo.git#配置git倉庫地址    search-paths: config-repo #git倉庫地址下的相對地址,可以配置多個,用,分割。
server:port: 12000

?

配置信息講解:

? ? ?Spring boot config也提供本地存儲配置的方式,我們只需要設置屬性spring.profiel.active=native,config server會默認從應用的src/main/resource目錄下檢索配置文件,也可以通過spring.cloud.config.server.native.searchLocations=file:E:/properties屬性來指定配置文件的位置。雖然spring cloud config提供了這樣的功能,但是為了支持更好的管理內容和版本控制,還是推薦使用github的方式。

啟動類

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

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

?

到此 Server 端相關配置已經完成。

SpringCloud。
測試

首先我們先要測試 Server 端是否可以讀取到 github 上面的配置信息,直接訪問?http://localhost:12000/config-client/dev?返回信息如下:

{"name": "config-client","profiles": ["dev"],"label": null,"version": "4e3ca4b9e2bb96c9a0ba012f6c6e0b6cadc48f3e","state": null,"propertySources": [{"name": "https://github.com/LISHENGDRUNK/config-repo-demo.git","source": {"info.profile": "dev-update"}}]
}

?

? ? ? 上述的返回的信息包含了配置文件的位置、版本、配置文件的名稱以及配置文件中的具體內容,說明 Server 端已經成功獲取了 Git 倉庫的配置信息。

? ? ?如果直接查看配置文件中的配置信息可訪問?http://localhost:12000/config-client-dev.yml?返回:\

?

neo:
holle: dev-update

Spring Authorization Server、
四、客戶端
? ? ?修改配置文件config-client-dev.yml中配置信息為:dev holle, 再次在瀏覽器訪問?http://localhost:12000/config-client-dev.yml?返回:dev hello,說明 Server 端會自動讀取最新提交的內容。?

? 在完成了上述驗證之后,確定配置服務中心已經正常運作,下面我們嘗試如何在微服務應用中獲取上述的配置信息。

再創建一個基礎的 Spring Boot 應用,命名為 config-client。

添加依賴

在 pom.xml 中添加下述依賴:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId>
</dependency>

configurationproperties注解、?

需要配置兩個配置文件,application.yml 和 bootstrap.yml,配置分別如下:配置文件

?

application.yml

spring:application:name: config-git
server:port: 13000bootstrap.ymlpring:cloud:config:uri: http://localhost:12000 # 配置中心的具體地址,即 config-servername: config-client # 對應 {application} 部分profile: dev # 對應 {profile} 部分label: master # 對應 {label} 部分,即 Git 的分支(默認是master)。如果配置中心使用的是本地存儲,則該參數無用

?

特別注意:上面這些與 Spring Cloud Config 相關的屬性必須配置在 bootstrap.yml 中,config 部分內容才能被正確加載。因為 config 的相關配置會先于 application.yml,而 bootstrap.yml 的加載也是先于 application.yml。

啟動類

springconfig、啟動類不用修改,只用@SpringBootApplication就行了

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

在 Controller 中使用@Value注解來獲取 Server 端參數的值

@RestController
public class HelloController {@Value("${neo.hello:error}")private String profile;@GetMapping("/info")public Mono<String> hello() {return Mono.justOrEmpty(profile);}
}

  

測試

? ? ? ?啟動項目后訪問?http://localhost:13000/info?返回dev說明已經正確的從 Server 端獲取到了參數。到此一個完整的服務端提供配置服務,客戶端獲取配置參數的例子就完成了。

Springboot?? ? ? ?是不是很簡單呢,其實很多東西都是這樣。在我們還不了解他的時候他對我們是陌生的,當我們真的開始了解他的時候,他對我們來說其實就是那么簡單。當然對于我們程序員來說,代碼 看了千百遍不如敲十遍。只有多動手才是快速學習的最佳捷徑。

?

?

轉載于:https://www.cnblogs.com/lsbigdata/p/10746851.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/181324.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息