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盘解压. ...
随机推荐
- git----------如何创建develop分支和工作流,以及如何将develop上的代码合并到master分支上
1.点击sourceTree 右上角的git工作流,或弹出一个弹出框,无需修改任何东西直接点击确认就可以创建develop. . 2.这里有两个分支了,当前高亮的就是你当前处在的分支.此时develo ...
- 发布自己的npm包、开源项目
背景:由于最近在做项目之余想做一些其他的事,所以东找找西找找的,最后决定写一个封装一些常用原型方法的NPM包,但不仅限于此.话不多说,说一下实践过程. 一.注册NPM及如何上传NPM包参考连接:htt ...
- beego 初体验 - 基础模块 - session, cookie
beego 内建 session 模块 首先,需要在项目中开启 Session,两种方式,以编码的方式或配置 这是代码实现: 配置文件: 这是调用:
- word之常用功能
0.word区域:标题栏.快速访问工具栏.功能区.功能按钮.导航窗口.编辑区.水平垂直滑动条.状态栏 1.更改office主题.文件---帐户---office主题.(传统白色.浅灰色.深灰色) 2. ...
- 设置vim支持gbk
linux下的默认字符集是utf-8,但Windows下默认是GBK,如果我们在linux下打开Windows中的文件就很容乱码,可以通过下面的设置使vim支持GBK编码. 首先,确认你的系统中安装了 ...
- Kindle:自动追更之云上之旅
2017年5月27: 原来的程序是批处理+Python脚本+Calibre2的方式,通过设定定时任务的方式,每天自动发动到自己的邮箱中.缺点是要一直开着电脑,又不敢放到服务器上~~ 鉴于最近公司查不关 ...
- Python在金融量开源项目列表
Python也已经在金融量化投资领域占据了重要位置,开源项目列表:
- Beaglebone板子修改usb连接时的默认IP192.168.0.2
首先除了有个USB线外,你还需要一个USB转串口的线(目的是防止修改错误,无法使用原来的usb的IP地址登陆,心大的可以跳过这步直接进入重点),串口线连接方法如下图: 将USB以及串口和PC机相连 ...
- linux 安装nginx+php+mysql
http://www.cnblogs.com/kyuang/p/6801942.htmlnginx安装 本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库 ...
- BBU和RRU具体区别是 什么?
RRU是Remote Radio Unit 远端射频模块,BBU是Building Baseband Unit 室内基带处理单元.基带BBU集中放置在机房,RRU可安装至楼层,BBU与RRU之间采用光 ...