Spring Cloud Config为分布式系统中的外部化配置提供服务器端和客户端支持。使用Config Server,您可以在中心位置管理所有环境中应用程序的外部属性。客户端和服务器上的概念都与Spring Environment和PropertySource抽象映射相同,因此它们非常适合Spring应用程序,但可以与以任何语言运行的任何应用程序一起使用。
在应用程序从开发人员到测试人员再到生产人员的整个部署过程中,您可以管理这些环境之间的配置,并确保应用程序具有它们迁移时所需的一切。服务器存储后端的默认实现使用git,因此它轻松支持带标签的配置环境版本,并且可以通过各种工具来访问这些内容来管理内容。添加替代实现并将其插入Spring配置很容易。
•去码云创建仓库,克隆到本地文件夹,配置application.yml文件
•application.yml配置
spring: profiles: active: dev --- spring: profiles: dev application: name: springcloud-config-dev --- spring: profiles: test application: name: springcloud-config-test
•把这个文件提交到码云上,总共四步。
第一步:
把文件添加到暂存区
git add
在这里添加
第二步:
查看状态
git status
第三步:
提交
git commit -m "fist commit" //fist commit是描述信息
第四步:
push到远程
git push origin master
测试:成功
•创建服务端Server项目
•导入依赖
<dependencies> <!--config--> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> <version>2.1.1.RELEASE</version> </dependency> <!--actuator完善监控信息--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
•编写配置
server: port: 3344 spring: application: name: springcloud-congi-server #连接远程仓库 cloud: config: server: git: uri: https://gitee.com/springandspring/springcloud-config.git #这里的uri是码云上自己创建的仓库HTTPS下载的地址
•开启功能
@EnableConfigServer
•测试
•更上面一样
•config-client配置
spring: profiles: active: dev --- server: port: 8201 #spring的配置 spring: profiles: dev application: name: springcloud-provider-dept #Eureka的配置,服务注册到哪里 eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka/ --- server: port: 8202 #spring的配置 spring: profiles: test application: name: springcloud-provider-dept #Eureka的配置,服务注册到哪里 eureka: client: service-url: defaultZone: <a href="http://eureka7001.com:7001/eureka/" rel="external nofollow noreferrer">http://eureka7001.com:7001/eureka/</a>
•执行上面的四步,push到远程
•创建一个client客户端新项目
•导入依赖
<dependencies> <!--config--> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>2.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
•编写bootstrap配置
#系统级别的配置 比用户级别设置先执行 spring: cloud: config: profile: dev #生产环境 name: config-client #需要从git上读取的资源名称,不需要后缀 label: master uri: http://localhost:3344 #连接服务端的地址 #相当于<a href="http://localhost:3344/master/config-client-dev/master" rel="external nofollow noreferrer">http://localhost:3344/master/config-client-dev/master</a>
编写application配置
#用户级别的设置 spring: application: name: springcloud-config-client-3355
•编写启动类
•编写Controller
@RestController public class ConfigClientController { @Value("${spring.application.name}") private String applicationName; @Value("${eureka.client.service-url.defaultZone}") private String eurekaServer; @Value("${server.port}") private String port; @RequestMapping("/config") //请求这个路径获取config-client配置里面的信息 public String getConfig(){ return "applicationName"+applicationName+ "eurekaServer"+eurekaServer+ "port"+port; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间:2020-05-01
情景描述 最近在修复Eureka的静态页面加载不出的缺陷时,最终发现是远程GIT仓库将静态资源访问方式配置给禁用了(spring.resources.add-mappings=false).虽然最后直接修改远程GIT仓库的此配置项给解决了(spring.resources.add-mappings=true),但是从中牵涉出的配置读取优先级我们必须好好的再回顾下 springcloud config读取仓库配置 通过config client模块来读取远程的仓库配置,只需要在boostrap.p
一.简介 当要将配置中心部署到生产环境中时,与服务注册中心一样,我们也希望它是一个高可用的应用.Spring Cloud Config实现服务端的高可用非常简单,主要有以下两种方式. 传统模式:不需要为这些服务端做任何额外的配置,只需要遵守一个配置规则,将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护.而客户端在指定Config Server位置时,只需要配置Config Server上层的负载均衡设备地址即可, 就如下图所示的结构. 服
在前面的博客中,我们都是将配置文件放在各自的服务中,但是这样做有一个缺点,一旦配置修改了,那么我们就必须停机,然后修改配置文件后再进行上线,服务少的话,这样做还无可厚非,但是如果是成百上千的服务了,这个时候,就需要用到分布式的配置管理了.而spring cloud config正是用来解决这个问题而生的.下面就结合gitlab来实现分布式配置中心的搭建.spring cloud config配置中心由server端和client端组成, 前提:在gitlab中的工程下新建一个配置文件config
前言 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件:spring-cloud-config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中. 本节主要演示怎么用Git仓库作为配置源. 开源地址:https://github.com/bigbeef 创建配置项目 在github中创建一个项目,专门用来保存我们所有项目的配置文件,项目是我的项目结构 配置项目地址:https://github.com/bigbeef/
概述 假设现在有个需求: 我们的应用部署在10台机器上,当我们调整完某个配置参数时,无需重启机器,10台机器自动能获取到最新的配置. 如何来实现呢?有很多种,比如: 1.将配置放置到一个数据库里面,应用每次读取配置都是直接从DB读取.这样的话,我们只需要做一个DB变更,把最新的配置信息更新到数据库即可.这样无论多少台应用,由于都从同一个DB获取配置信息,自然都能拿到最新的配置. 2.每台机器提供一个更新配置信息的updateConfig接口,当需要修改配置时,挨个调用服务器的updateConf
一.创建Config配置中心项目 1.添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> 2.启动类,需要添加@EnableConfigServer import org.springframework.boot.SpringApp
补充 使用Spring Cloud Config加密功能需要下载JCE扩展,用于生成无限长度的密文.链接:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 下载完成之后解压,把得到到两个Jar包复制到$JAVA_HOME/jre/lib/security目录下. 简介 在真实项目环境下,我们不会在配置文件中明文存储密码等机密性文本,以防被窃.Spring Cloud Config提
Spring Cloud 为开发人员提供了一系列的工具来快速构建分布式系统的通用模型 .例如:配置管理.服务发现.断路由.智能路由.微代理.控制总线.一次性Token.全局锁.决策竞选.分布式session.集群状态等等.分布式系统的协助需要一大堆的模型,使用Spring Cloud开发者能快速的建立支持实现这些模式的服务和应用程序.他们将适用于任何分布式环境,无论是开发者的个人电脑还是生产环境,还是云平台. 特性 Spring Cloud 专注于提供良好开箱即用的典型方案和可扩展方式. 分布式
前言 我们会使用git来保存我们项目的配置文件,但是文件中总有一些敏感数据,对于这些敏感数据我们通常需要给它加密,加密通常有两种加密方式,一种是对称加密,一种是非对称加密,对称加密简单方便,但是安全性没有非对称加密高,非对称加密需要生成证书,安全性比较高.但是请记住没有绝对的安全. 配置环境 java8 jce config server 的加密解密需要依赖与java Cryptography Extension (jce) 安装方式:可以参考里面的README,其实也很简单:把jdk下面 /j
简介 有时客户端需要在 config server 无响应时进行重试,以给 config server 时间进行恢复.利用 spring 提供的重试组件,我们可以方便的配置重试机制,包括重试间隔,重试次数等.下面话不多说了,来一起看看详细的介绍吧. 项目源码 点击下载 为 web 项目添加依赖 开启客户端重试功能需要两个新依赖,spring-retry 和 spring-boot-starter-aop,把如下代码添加到 web 项目的 pom.xml 文件中: <dependency> &l
关于spring cloud config的基本使用,前面的博客中已经说过了,如果不了解的话,请先看以前的博客 spring cloud config整合gitlab搭建分布式的配置中心 spring cloud config分布式配置中心的高可用 今天,我们的重点是如何实现数据源的热部署. 1.在客户端配置数据源 @RefreshScope @Configuration// 配置数据源 public class DataSourceConfigure { @Bean @RefreshScope
在前面的文章中,我们实现了配置文件统一管理的功能,但是我们可以发现,我们仅仅只用了一个server,如果当这个server挂掉的话,整个配置中心就会不可用,下面,我们就来解决配置中心的高可用问题. 下面我们通过整合Eureka来实现配置中心的高可用,因为作为架构内的配置管理,本身其实也是可以看作架构中的一个微服务,我们可以把config server也注册为服务,这样所有客户端就能以服务的方式进行访问.通过这种方法,只需要启动多个指向同一Gitlab仓库位置的config server端就能实现
在分布式系统中,配置文件散落在每个项目中,难于集中管理,抑或修改了配置需要重启才能生效.下面我们使用 Spring Cloud Config 来解决这个痛点. Config Server 我们把 config-server 作为 Config Server,只需要加入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-ser
当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置. 其架构原理图大致如下: 我们将配置文件放入git或者svn等服务中,通过一个Config Server服务来获取git中的配置数据,而我们需要使用的到配置文件的Config Client系统可以通过Config Server来获取对应的配置. 下面我们通过