Springcloud 2.x 版本 分布式配置中心

一.什么是分布式配置中心?

就是为微服务架构中的微服务提供集中化的外部配置支持,配置中心为各个微服务应用的所有环境提供了中心化的外部配置(可能比较难理解,想知道是什么意思就要知道为什么这么配置:这么配置就是为了解决微服务中很多个provider中的application.properties配置管理问题,以及配置冗余问题,把这些配置集中到一起进行存放,并且把重复的配置提取出来解决冗余)

二.图解运行

在这里插入图片描述
1 . git hub 上存放我们的配置文件
2 . config-server 远程连接到 git hub
3 . config-client 连接到config-server
运行:当我们启动config-client 服务的时候,client 会通过连接的 config-server 拿到远程git 上面的配置文件,然后通过 Spring 加载到对象中。

三.如何简单实现springcloud config的分布式配置中心

1.创建github账号
2.在github上面创建repository(仓库)

一个github账号可以有很多个仓库—>一个仓库只能对应一个项目—>所以仓库的名称就是所要提交的项目名
如果是一个新的账号,就必须先有一个命名空间(也是自己创建的,可以随意起名)
在这里插入图片描述

3.使用github desktop把项目加载到本地

选择File–>clone repository–>选择需要加载到本地的项目
在这里插入图片描述

4.创建三个文件(分为dev:开发环境,test:测试环境,pro:上线环境)
开发环境:
application-dev.properties
spring.profiles=dev

server.port=3081

spring.application.name=application-dev
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/dev?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
测试环境:
application-test.properties
spring.profiles=test

server.port=3081

spring.application.name=application-test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
	
上线环境:
application-pro.properties
spring.profiles=pro

server.port=3081

spring.application.name=application-pro
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/pro?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
5.把配置好的三个文件提交到github上

当使用github desktop提交代码到github上的时候,只能一个一个的提交,不能一起提交
选择commit to master(记住这个master)
选择repository选择–>push

四.分布式配置中心的访问规则:

无论是yml还是properties都可以使用该规则进行访问:
/{application}/{profile}[/{label}]

properties文件:
/{application}-{profile}.properties
/{label(分支)}/{application}-{profile}.properties

yml文件:
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml

五.配置springcloud config

5.1 server层的配置

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

5.1.2 application.properties配置
#首先还是常规的:
 	server.port=4081
 	server.servlet.context-path=/
#配置application.name (可配置,可不配置) ,在此配置是为了提醒eureka中的这个配置(因为eureka中服务的发现就是找的这个名字),不要忘记
  spring.application.name=springcloud-config-server-4081
  #开始配置GitHub
  #先配置GitHub的仓库的地址(在浏览器的地址栏上,直接复制就好)
  spring.cloud.config.server.git.uri=https://github.com/命名空间/仓库名
 
  #配置GitHub的账号和密码
spring.cloud.config.server.git.username=邮箱/账号
  spring.cloud.config.server.git.password=密码
  #配置GitHub的仓库的搜索路径(固定的不要补全!!!)
  spring.cloud.config.server.git.search-paths=config-repo
  #跳过SSL的认证
  spring.cloud.config.server.git.skip-ssl-validation=true

5.1.3 ApplicationRun启动类注解
除了常规的@@SpringBootApplication外,还有一个@EnableConfigServer,标明是server层的配置中心
5.2 client 层的配置
5.2.1 jar包
<dependencies>
    <dependency>
        <groupId>com.wlx.springcloud</groupId>
        <artifactId>20191108-management-model</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
    </dependency>
    <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>
</dependencies>
5.2.2 配置config 文件

此处的配置文件和之前的有区别,有两个配置文件 bootstrap.properties 和 application.properties 文件,配置两个文件的作用就是:查漏补缺。
把相同的配置放到了GitHub上,有差异的配置放在了application文件中,加载的时候会把这两个文件进行合并
Bootstrap.properties文件:

#从github上读取所要配置的文件的名称
#从GitHub上的repository读取文件名
#根据读取的规则:不要加后缀名   .properties或.yml
spring.cloud.config.name=application-dev
#配置prpfile的名称
#必须要和GitHub上文件配置中心中的spring.profile的值一致,否则匹配不到
spring.cloud.config.profile=dev
#配置label(master) 如果使用默认的就不需要配置
spring.cloud.config.label=master
#配置config的 服务器端 的地址及端口
spring.cloud.config.uri=http://localhost:端口号

Application.properties文件:

#一定要和bootstrap.properties中的spring.cloud.config.name的值一致,否则映射不到`
spring.application.name=application-dev
5.2.3 测试是否链接成功server层的服务器,加载云端的配置文件

新创建一个controller目录 –-> 创建一个controller测试类 TestController ,利用@Value注解获取配置文件中的值

@RestController
public class TestController {

 	 @Value("${spring.datasource.driver-class-name}")
  	  private String driverClassName;
  	  
   	 @RequestMapping("/test")
  	  public String test(){
  	     return driverClassName;
   	}
}

初次写博客,不喜勿喷!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

民兵王er蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值