• 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这三个配置文件。

  • 相关阅读:
    jQuery Validate 验证成功时的提示信息
    MySQL定时任务实现方法
    tp5获取器的用法。
    使用layui异步请求上传图片在tp5.1环境下出现“请对上传接口返回json”的错误的解决方法
    微信小程序底部菜单栏的使用方法
    接口测试中的接口到底是什么?
    【web自动化测试】requests-html 这个解析库,能让你更轻松的获取网页内容
    一个软件测试小白的进阶之路
    Python进阶:@property 动态属性
    百度网盘限速怎么办?
  • 原文地址:https://www.cnblogs.com/red-code/p/9377413.html
Copyright © 2020-2023  润新知