SpringCloud>10 - 分布式配置中心--config

扯淡:

在微服务架构中,微服务数量非常多,其每个服务都有自己独立的配置文件,分布式配置中心就是用来管理这些配置文件的,其配置文件可以统一放到本地、git、svn等。spring cloud config 为实现分布式配置中心的一种组件,分为config client和config server。

个人学习总结:
链接:【springboot、springcloud、docker 等,学习目录】  

官网:https://spring.io/projects/spring-cloud-config

存储方式:

支持git、svn、jdbc、本地等。git较为常用,本文选取git作为存储中心。

GitHub:比较流行,但是国内访问慢。

搭建git仓库:使用docker可以很方便就搭建起来,但是需要服务器。

码云:在国内也很流行,只需要注册自己的账号就可以使用了。

码云仓库的使用:

springcloud:自己建立的仓库。

springcloud_cloud:配置中心存放配置文件。

springcloud_parant:工程代码,并不是本章需要,仅仅是我个人管理代码。

config server 服务端:

服务端为独立的工程。

1、新建 springcloud_config 模块:

2、pom依赖:

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    </dependencies>

3、启动类:

/**
 * @Auther: xf
 * @Date: 2018/12/27 22:04
 * @Description: config 配置中心服务端
 */
// 开启服务端
@EnableConfigServer
@SpringBootApplication
public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class);
    }
}

4、application.yml:

server:
  port: 8000
spring:
  application:
    name: springcloud-config
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/cpla026/springcloud.git
          #search-paths: springcloud_config
          search-paths: '*'

uri:git仓库地址。

search-paths:我在仓库中加了springcloud_config文件夹,如果仓库中直接存放配置文件则不需要此配置,"*" 代表所有。

5、上传各微服务配置文件:

这里是官网访问的规则:

则命名配置配置文件的规则:{application}-{profile}.yml或{application}-{profile}.properties

5.1、将各微服务配置文件改名后上传:

这里只测试用户微服务,命名为user-dev.yml:

5.2、启动配置中心,访问配置文件:

可以访问到配置文件信息。

config client 客户端:


每一个需要从git拉取配置文件的微服务都是一个客户端。以用户微服务为例。

这里的application.yml 可删除,我做了个备份。

1、引入依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

2、启动用户微服务会发生错误。

2.1、控制台日志第一行:

2.2、官网解释:

配置中心的客户端启动的时候会默认到本地8888端口的服务器中获取自己的配置。你可以使用bootstrap.properties配置文件来改变这一默认启动行为。bootstrap会比application优先加载。

3、新建bootstrap.yml:

spring:
  cloud:
    config:
      # config server 地址
      uri: http://127.0.0.1:8000
      # name、profile 配置文件的命名
      name: user
      profile: dev
      label: master  # 存储为git时 默认为 master

4、测试:

4.1、启动配置中心、用户微服务:

报错:Eureka没有启动,不用管,本节只测试用户微服务。

4.2、请求用户微服务接口:

用户列表:http://127.0.0.1:8081/user/list

用户详情:http://127.0.0.1:8081/user/1

至此,配置中心配置完毕,用户服务成功从配置中心拉取到自己的配置文件。

总结: 

1、spring cloud config 配置中心服务端为独立工程,需要web依赖。
2、在服务端指定远程仓库地址、客户端指定服务端地址。
3、客户端启动时默认寻找端口为8888的本地服务端加载配置。可使用bootstrap.properties 配置文件改变这种行为。
4、上传到远程仓库的配置文件应以{application}-{profile}.yml(properties)的格式命名。

代码地址:

1、config server:

https://gitee.com/cpla026/springcloud/tree/master/springcloud_parent/springcloud_config


2、config client

https://gitee.com/cpla026/springcloud/tree/master/springcloud_parent/springcloud_user_config


3、git 中配置文件仓库

https://gitee.com/cpla026/springcloud/tree/master/springcloud_config


个人学习分享
更多 springboot、springcloud、docker 文章,关注公众号吧:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值