我们使用分布式架构 搭建项目时 就比如说我们更改了数据库的密码
那如果有十几个微服务配置在不同的服务器上 我们是不是得一个一个服务器的去更改
那样就相当的麻烦 不光麻烦 还及其容易错 所以基本是不可能这样实现
这里有一个解决方式 可以把项目的配置放到gitlab上 从gitlab来读取 这样就方便了我们的配置
那么就要登陆到gitlab上创建账号 发布项目 等等 这些东西可以到
这个教程看一下 这里不多说
然后在项目中创建一个配置中心的模块
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server
compile group: 'org.springframework.cloud', name: 'spring-cloud-config-server'
添加config-server的依赖 因为它是配置中心服务端 在客户端的话需要添加
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-config'
接着往下看 配置中心的配置文件
spring:
application:
name: config-center //项目名
cloud:
config:
server:
git:
uri: https://gitlab.com/wangkeee/poppy-mall.git //git的地址
clone-on-start: true //是否在使用配置文件时拷贝到本地
search-paths: local //读取项目中的那个文件夹
server:
port: 8887 //端口号
注意 这里的配置文件需要使用bootstrap.yml 而不是之前使用的application.yml
他们基本上是一样的 但bootstrap.yml的执行要比application.yml优先
想一下 在读取项目时 配置文件当然是需要优先读取的 在本地的话倒还好 这里把配置文件放到git上 读取缓慢 所以需要优先读取
然后看一下git项目的搭建
在文件夹中创建微服务的配置文件 并且把微服务的配置文件的内容拷贝进去
文件的命名是配置文件中
spring:
application:
name:
的值.yml
然后就可以把对应微服务的配置文件删除 也加上一个bootstrap.yml
看一下里面的配置
spring:
application:
name: project-poppy-mall //项目名
cloud:
config:
uri: http://localhost:8887 //配置中心的地址
在配置中心的启动类上 加上
@SpringBootApplication //启动项目
@EnableConfigServer //代表它是一个配置中心
然后就可以运行配置中心 就可以运行成功了
然后就可以照常运行删除了配置文件的微服务了 如果想对微服务的配置文件更改只需要登陆gitlab上进行更改就行了 非常方便
但这样做我们想切换环境 比如把项目打成jar包到测试那边 是不是每次都需要一个一个的更改配置文件 当然不能这么干 那我们就可以通过这种方式
把配置文件分成三个 bootstrap-local与bootstrap-test文件中的代码基本与原配置文件一样 只是test的访问文件夹是test
bootstrap的代码就只有
spring:
profiles:
active: test
代表指定它是测试环境 但这样做也不大好 我们每次还是要修改代码 那么能不能不修改代码就能改变成测试或开发环境呢
我们通过build任务把项目打成jar包
之后可以在cmd中通过java -jar来打开这个jar包 我们只需要在语句后面输入java -jar jar包名 --spring.profiles.active=test或者local
就可以指定开发或生产环境了