springCloud配置本地配中心SpringCloudConfig
多环境配置
在一般开发过程中如果调试都在本地进行,则可以设置一个多环境配置,在本地与线上配置间来回切换。
springcloud默认会访问的配置文件名是application.properties,
我们如果要创建多环境的配置文件的话,文件名格式应为:application-{profile}.properties
其中的{profile}用来标识不同的环境,如application-native.properties文件可以用来配置本地环境、application-prod.properties文件可以用来配置生产环境。
springcloud中通过“spring.profiles.active”属性来指定{profile},如spring.profiles.active=native,则使用的是application-native.properties配置文件。
设置“spring.profiles.active”属性的方法有两种:
1、通过eclipse的-D设置系统参数。
找到Config(控制中心)和Eureka(注册中心)的main函数,右键点击:


将spring.profiles.active=native这项属性设置直接通过-D注入系统参数。
2、将此属性写入入口application.properties文件中。
建立本地配置中心
配置中心分为两部分组成:客户端和服务端。
服务端是单独的服务,需要注册到注册中心中。
而客户端则是存在于各个其他服务中的。
配置中心的服务端既可以将配置文件保存在远程的git仓库中,也可以将这些配置文件保存在本地,因为平常开发用本地配置中心较多,此次主要讲本地配置中心的搭建。
服务端
先建立配置中心的启动入口:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class ConfigServer {
public static void main(String[] args) throws Exception {
SpringApplication.run(ConfigServer.class, args);
}
}
其pom文件中只需要添加以下依赖即可:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
配置文件application.properties如下:
#配置中心端口
server.port=8887 spring.application.name=config-server logging.config=classpath:log4j2.xml spring.profiles.active=native #申明本地配置文件的存放位置 spring.cloud.config.server.native.searchLocations=file:D:\\etc\\native #注册中心 eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ #刷新时,关闭安全验证 management.security.enabled=false #开启消息跟踪 spring.cloud.bus.trace.enabled=true
启动后,此服务端会被注册到注册中心。
客户端
客户端存在于各个服务中,只需要在需要的服务项目中创建一个bootstrap.properties配置文件,即可从配置中心服务端获取相关配置。
bootstrap.properties:
#配置中心的地址
spring.cloud.config.uri=http://localhost:8887/
#对应的是配置文件规则中的{application}部分
spring.cloud.config.name=native
#对应的是配置文件规则中的{profile}部分,可以是多个,用逗号隔开。
spring.cloud.config.profile=common,mysql,activemq
#对应的是配置文件规则中的{label}部分
spring.cloud.config.label=master
通过客户端的bootstrap.properties配置文件可以看出,其实里面就写了两种东西:
spring.cloud.config.uri是配置中心地址,用来定位配置中心。
其余的三个是“配置文件规则”,用来定位“具体的配置文件”。
我们再来讲一下,什么是“配置文件规则”:
我们之前在讲配置中心服务端的时候,定义了一个spring.cloud.config.server.native.searchLocations=file:D:\\etc\\native参数
这个硬盘路径里装的都是具体的配置文件,而每个客户端要获取的也是这些配置文件。具体的文件例如下图所示:

由图中我们可看出,里面所有的文件的命名规则都遵循:{application}-{profile}.properties
所以我们客户端bootstrap.properties文件中的spring.cloud.config.name=native参数,实际上是为了匹配到这些配置文件的{application}前缀,
所以spring.cloud.config.profile=common,mysql,activemq参数匹配的就是{profile}后缀了。
所以上面实例的配置中心客户端实际上只会拿到native-common.properties、native-mysql.properties、native-activemq.properties这三个配置文件。
springCloud配置本地配中心SpringCloudConfig的更多相关文章
- SpringCloud配置中心实战
SpringCloud配置中心实战 1.统一配置中心(Config) 1.1 Spring项目配置加载顺序 1.2 配置规则详解 1.3 Git仓库配置 1.3.1 使用占位符 1.3.2 模式匹配 ...
- redhat 配置本地yum源163yum源epel 源,无需卸载yum!无须拷贝ISO,愿网上少一点垃圾教程误人子弟
都知道redhat不收费,但是其yum服务是要收费的,不想出钱那就自己配置yum源就好了. 首先,博主之前也没用过redhat,第一次用yum装包的时候提示什么没注册之类的,balaba一大堆,然后就 ...
- linux配置本地源
yum本地源配置 标签: centosplugins网络file虚拟机linux 2011-10-09 21:40 12093人阅读 评论(1) 收藏 举报 分类: linux yum 在网上找了很 ...
- 为CentOS 6 配置本地YUM源
在网上找了很多为CentOS 6配置本地YUM源的方法,其中有很多是与网络相关的,我只想配个自己用的,结果就发现这个方法比较简单实用,就转过来了. 环境:CentOS 6.0 默认的yum是以网络来安 ...
- 如何在本地数据中心安装Service Fabric for Windows集群
概述 首先本文只是对官方文档(中文,英文)的一个提炼,详细的安装说明还请仔细阅读官方文档. 虽然Service Fabric的官方名称往往被加上Azure,但是实际上(估计很多人不知道)Service ...
- spring-cloud配置高可用eureka服务端
spring-cloud配置eureka服务端 eureka用来发现其他程序 依赖 <?xml version="1.0" encoding="UTF-8" ...
- redhat 配置本地yum源163yum源epel 源,无需卸载yum!无须拷贝ISO
都知道redhat不收费,但是其yum服务是要收费的,不想出钱那就自己配置yum源就好了. 首先,博主之前也没用过redhat,第一次用yum装包的时候提示什么没注册之类的,balaba一大堆,然后就 ...
- redhat 配置本地yum源
redhat配置3个源就够了: 1.本地yum源,就是你本地的ISO 2.配置163源 3.配置epel源 环境:redhat7 + vmw 12 pro 1.配置本地yum源 要配置本地源,需要先把 ...
- Maven基础配置—本地Maven配置
1.下载客户端 通过http://maven.apache.org/download.cgi#下载Maven本地客户端. 我下载的是apache-maven-3.2.5-bin.zip,在D盘解压. ...
随机推荐
- js对象属性名驼峰式转下划线
一.题目示例: 思路: 1.匹配属性名字符串中的大写字母和数字 2.通过匹配后的lastIndex属性获取匹配到的大写字母和数字的位置 3.判断大写字母的位置是否为首位置以及lastIndex是否为0 ...
- This Debug perspective is designed to support application debugging.it incorporates views for displaying the debug stack,variables and breakpoint mamagement
使用IDE(Eclipse Version:Neon.2 Release (4.6.2)),出现以下提示信息: This kind of launch is configured to openthe ...
- UI框架搭建DAY2
今天的主要任务是完善NormalPanel, 搭建PopupPanel. 在编写PanelManager的过程中,发现了一个bug.昨天把panelPath直接传给了ResourceManager.G ...
- InternalError (see above for traceback): Blas GEMV launch failed: m=1, n=100
python tensorflow 运行提示错误:InternalError (see above for traceback): Blas GEMV launch failed: m=1, n=1 ...
- win7共享打印机和防火墙配置
今天给公司一台Win7电脑连接的打印机做共享.办公司共6台电脑,其中1台是连接了打印机,并安装了打印机驱动,可以正常本机使用打印机.现在需要其他5台电脑也共享使用打印机. 1.当共享的时候,提示“无法 ...
- codeforces 985A Chess Placing
题意: 移动最少的步数,使得所有的棋子在同一颜色的格子中. 每次一个棋子只能向左或者向右移动一步,不能移到有棋子的格子中. 思路: 枚举全黑和全白的情况. 对于每一个需要移动的棋子,它移动到的位置一定 ...
- bash vim等常用命令
生成的txt一不小心带了./,用vim: :%s/\.\/single/single #%s/xxx/yyy/g是全文本替换,这里用\将特殊字符.和/转换成普通字符 结果还不错: ---------- ...
- Android中intent的分类及使用
intent分为隐式和显式,显式的浅显易懂就是直呼其名,可用intent类的一个构造函数,直接传入context和想要打开的活动的名称.还可以用setcomponent方法来确定要打开的活动的名称.而 ...
- Jade入门学习笔记
jade是超高性能的node JavaScript模板引擎,有着非常强大的API和大量杰出的特性.它主要针对node的服务端.由于商标的原因,改为Pug,哈巴狗.Pug有它本身的缺点--可移植性差,调 ...
- 【分布式搜索引擎】Elasticsearch写入和读取数据过程
一.Elasticsearch写人数据的过程 1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2)coordinating node,对docum ...