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 加载到对象中。
一个github账号可以有很多个仓库—>一个仓库只能对应一个项目—>所以仓库的名称就是所要提交的项目名
如果是一个新的账号,就必须先有一个命名空间(也是自己创建的,可以随意起名)
选择file–>clone repository–>选择需要加载到本地的项目
开发环境: 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
当使用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
<dependencies> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-config-server</artifactid> </dependency> </dependencies>
#首先还是常规的: 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层的配置中心
<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>
此处的配置文件和之前的有区别,有两个配置文件 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; } }
初次写博客,不喜勿喷!!!
上一篇: Android开发图片处理常见方法
推荐阅读
-
利用Spring Cloud Config结合Bus实现分布式配置中心的步骤
-
SpringCloud之分布式配置中心Spring Cloud Config高可用配置实例代码
-
详解spring cloud config整合gitlab搭建分布式的配置中心
-
spring cloud config分布式配置中心的高可用问题
-
Spring Cloud微服务架构的构建:分布式配置中心(加密解密功能)
-
SpringCloud用Zookeeper搭建配置中心的方法
-
跟我学SpringCloud | 第六篇:Spring Cloud Config Github配置中心
-
springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心
-
Spring Cloud Config实现分布式配置中心
-
Nacos(四):SpringCloud项目中接入Nacos作为配置中心