Spring Cloud认知学习(六):配置中心Spring Clou…
2020-05-15 16:05:38来源:博客园 阅读 ()
Spring Cloud认知学习(六):配置中心Spring Cloud Config的使用
??上一篇介绍一个新的组件Zuul,Zuul是网关组件,对Api请求进行了统一的接收,基于网关,我们可以对所有的请求来进行处理,进行日志记录,请求授权等操作。 ??这一篇介绍的Spring Cloud Config是作为配置中心的存在,主要解决多服务端部署时配置文件的分发问题。目录
- Spring Cloud Config
- 作用:
- 简单示例
- 创建配置中心
- 拉取配置
- 测试
- 补充:
??上一篇介绍一个新的组件Zuul,Zuul是网关组件,对Api请求进行了统一的接收,基于网关,我们可以对所有的请求来进行处理,进行日志记录,请求授权等操作。Spring Cloud认知学习(五):网关Zuul的使用
??这一篇介绍的Spring Cloud Config是作为配置中心的存在,主要解决多服务端部署时配置文件的分发问题。
??PS:这一篇是这个认知学习的最后一篇,认知学习并没有紧贴实际,所以组件也只是简单介绍,只是一个Spring Cloud认知的学习,目的就好像给你介绍一个轮子的使用,让你认识这个轮子,对这个轮子有了兴趣,轮子里面的具体方法后面再细说。
??后面将会针对组件来单独章节讲解。
Spring Cloud Config
作用:
- 在分布式部署中,肯定会有很多个服务端需要部署,理论上各种服务端可能需要采用不同的配置文件,所以对于多个服务端的配置文件分发也是个问题。
- Spring Cloud Config就是作为配置中心存在的,其他服务端可以从它这里拉取服务端所需的配置文件。
- 原理:Spring Cloud Config对外暴露Http API接口,Spring Cloud Config Client通过调用Config Server的Http接口来获取配置文件。
简单示例
Spring Cloud Config可以从很多地方拉取配置文件,本地远程都可以。由于从远程git拉取比较常见,所以这里举的例子是远程git的。【本地拉取的会在单章中演示。】
下面的代码可以参考:Spring Cloud Config配置中心使用实验
创建配置中心
1.创建模块spring-cloud-config-server-11000
,这是作为配置服务中心的模块,就好像我们之前使用eureka的时候也要创建一个eureka-server。
2.给spring-cloud-config-server-11000
模块导入依赖:
<dependencies>
<!--引入公共依赖包 start-->
<dependency>
<groupId>com.progor.study</groupId>
<artifactId>spring-cloud-common-data</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--引入公共依赖包 end-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
3.修改spring-cloud-config-server-11000
模块的application.yml:
server:
port: 11000
spring:
application:
name: spring-cloud-config-server
cloud: # 配置spring cloud config
config:
server:
git: # 使用git来拉取
uri: https://github.com/alprogor/spring-cloud-config-test.git #GitHub上面的git仓库名字
search-paths: messageservice
# 如果你不指定search-paths,那么默认是在根目录查找的,那么你的config文件需要放在根目录
4.修改主程序类,增加@EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class SpringCloudConfigServer11000Application {
public static void main(String[] args) {
SpringApplication.run(SpringCloudConfigServer11000Application.class, args);
}
}
5.在github上面创建一个仓库,在本地拉取这个仓库,创建一个文件夹messageservice,文件夹里面有一个spring-cloud-message-config-11000.yml
,填入下面的代码只会,推送到github:
可以参考代码:spring-cloud-config-test
spring:
profiles:
active:
- dev
---
spring:
profiles: dev
application:
name: spring-cloud-message-service-config-dev
---
spring:
profiles: test
application:
name: spring-cloud-message-service-config-test
server:
port: 8006
6.启动spring-cloud-config-server-11000
??访问http://localhost:11000/master/spring-cloud-message-config-11000.yml
可以看到主分支上的配置文件。
??访问http://localhost:11000/master/spring-cloud-message-config-11000-test.yml
,可以看到test profile下的配置
??如何拼接路径来访问配置文件,可以参考下图:
拉取配置
1.创建模块spring-cloud-message-service-config-8006
:
2.导入依赖:
<dependencies>
<!--引入公共依赖包 start-->
<dependency>
<groupId>com.progor.study</groupId>
<artifactId>spring-cloud-common-data</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--引入公共依赖包 end-->
<!--引入web开发相关包 start-->
<!--web 模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--jettey作为默认的服务器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<!--引入web开发相关包 end-->
<!--spring -cloud -config 场景包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
3.在模块spring-cloud-message-service-config-8006
的resources下创建bootstrap.yml:
??bootstrap.yml是一个优先级很高的配置文件,反正优先于application.yml,所以它可以用来拉取配置文件。
spring:
cloud:
config:
name: spring-cloud-message-config-11000 #需要从github上读取的资源名称,注意没有yml后缀名
profile: test #本次访问的配置项
label: master
uri: http://localhost:11000
测试
??启动spring-cloud-config-server-11000
,等启动完毕后再启动spring-cloud-message-service-config-8006
,看spring-cloud-message-service-config-8006
的端口是否是8006,如果是,说明成功拉取了配置文件。
补充:
- 如何从Spring Cloud Config服务本地拉取配置文件,如何利用Spring Cloud Bus来更新配置文件和Spring Cloud Config集群的配置的这里没讲,将在Spring Cloud Config单章中讲。
原文链接:https://www.cnblogs.com/progor/p/12895276.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash