springcloud 入门系列(十)springcloud config

最近比较忙有日子没有更新了,今天更新springcloud 系列最后一个组件,分布式配置中心-springcloud config.

        什么是分布式配置中心,他主要提供分布式应用外部化配置进行统一配置管理的作用,比如百度disconf,以及阿里的Diamond等都是比较优秀的分布式配置中心。

springcloud config默认采用git来存储配置,也可以使用svn或者本地化文件系统,这里我们使用的是git存储。

这块内容比较简单,springcloud config 分服务端和客户端,我们下面先来搭建。

maven pom 配置:

 <properties>        <java.version>1.8</java.version>        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>    </properties>
    <dependencies>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-config-server</artifactId>        </dependency>
        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>
    <dependencyManagement>        <dependencies>            <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>${spring-cloud.version}</version>                <type>pom</type>                <scope>import</scope>            </dependency>        </dependencies>    </dependencyManagement>

springboot 程序引导类加上@EnableConfigServer 注解,开启springcloud config 的服务端功能。

@EnableConfigServer@SpringBootApplicationpublic class ConfigServerApplication {
    public static void main(String[] args) {        SpringApplication.run(ConfigServerApplication.class, args);    }
}

application.properties 中添加服务的基本信息以及git仓库地址信息:

spring.application.name=config-serverserver.port=8087
spring.cloud.config.server.git.uri=https://gitee.com/ethan-dai/spring-cloud-demospring.cloud.config.server.git.search-paths=demo/config

配置释义:

spring.cloud.config.server.git.uri : 配置git仓库地址

spring.cloud.config.server.git.search-paths: 仓库路径下的相对搜索位置,可以配置多个

spring.cloud.config.server.git.username : git 仓库用户名

spring.cloud.config.server.git.password: git 仓库用户密码

这里没有配置用户名密码,因为我这里公开了仓库,这里我使用的是码云(国内git源码托管方)。

我这里配置的git 地址也就是springcloud 系列所有的demo示例地址:

https://gitee.com/ethan-dai/spring-cloud-demo

大家有需要可以到这里进行代码拉取,在仓库下面创建目录demo/config,也就是上面配置的搜索目录。

接下来启动config 服务,就可以通过curl或者浏览器来访问配置中心了。

访问方式有如下几种:

  • /{application}/{profile}[/{label}]

  • /{application}-{profile}.yml

  • /{label}/{application}-{profile}.yml

  • /{application}-{profile}.properties

  • /{label}/{application}-{profile}.properties

上面的url会映射成{application}-{profile}.propertes对应的配置文件,其中label对应git上不同的分支,默认为master分支.

我们可以访问http://localhost:8087/master/config-dev.properties,

http://localhost:8087/config-dev.properties进行测试,结果都如期返回了:

或者访问http://localhost:8087/config/dev:

 

 

config-server 会在本地仓库暂存git仓库的配置,当网络无法访问git仓库的时候会报无法从仓库获取配置,仍然会返回本地仓库的配置信息。

 

下面我们来创建springcloud config 的客户端应用。

maven pom 依赖:

  <properties>        <java.version>1.8</java.version>        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>    </properties>
    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-config</artifactId>        </dependency>
        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>
    <dependencyManagement>        <dependencies>            <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>${spring-cloud.version}</version>                <type>pom</type>                <scope>import</scope>            </dependency>        </dependencies>    </dependencyManagement>

bootstrap.properties:

spring.application.name=config-serveer-clientserver.port=8089spring.cloud.config.name=configspring.cloud.config.uri=http://localhost:8087spring.cloud.config.profile=devspring.cloud.config.label=master

这里的配置就不解释了,几乎就是见名知道意了。

这里有个小坑,springcloud config 的配置必须配置在bootstrap.properties中,如果建在application.properties 中是无法正常启动项目的。

然后我们创建个访问配置的代码:

@RestController@RefreshScopepublic class TestController {
    @Value("${config.server.name}")    private String serverName;
    @GetMapping("config")    public String test() {        return serverName;    }}

然后启动服务器,输入http://localhost:8089/config

如图我们访问到了配置中心的配置数据。到这里springcloud config 配置中心就讲解完了,这一节也比较简单,也属于springcloud 中比较简单的一个组件,而且也不是必选组件。

  如有不对之处欢迎指教!

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值