1. spring cloud config 了解
spring cloud config 为微服务架构中的各个服务提供了集中化的外部配置,配置服务器为各个不同的微服务环境提供了一个中心化的配置。
简单的来说,可以将一些配置信息放在git上面,config通过方式获取git上面的配置信息,在分给需要配置的 分布式服务
解决了部署导致配置文件不好管理的问题,而且配置环境有开发环境测试环境和上线环境,用了config之后就很好的改变配置
2. config具体的使用
2.1 创建一个远程git远程库
这里就不说了,你可以创建github 或者是 码云
创建成功后 复制仓库地址
先留着之后配置需要用
2.2 创建一个新的工程子项目 关联后开始导依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
记得最好要把这个工程绑定到euerka上面,包也有可以看我前面的文章,这里直说config
2.3 application.yml文件配置
#开放端口
server:
port: 8989
spring:
cloud:
config:
server:
git:
#git上的地址复制到这里
uri: https://github.com/pretty-cat/spring-cloud-config-center.git
#如果是私有仓库你需要登录你的账号密码(没有不用谢这两个)
username: xxxx没有不填写
password: 没有不写
application:
name: cloud-config
#eureka的配置
eureka:
client:
register-with-eureka: true
fetch-registry: false
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
2.4 启动类配置
加一个注解 @EnableConfigServer
@SpringBootApplication
@EnableConfigServer
@EnableEurekaClient
public class CloudConfigApplication {
public static void main( String[] args ) {
SpringApplication.run(CloudConfigApplication.class, args);
}
}
3 测试
你可先放一个yml文件放到git上,之后按步骤配置好
在浏览器输入:http://localhost:8989/application-dev.yml
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BksRnw7P-1570769926161)(7091BC22191A449DAB587C81723334E0)]
其中application为github中配置文件的文件名,dev为配置文件中application.profiles的值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lD5L6fPp-1570769926163)(E07E41828A184F4B913449A67AC3FD84)]
如果测试没问题,说明这个子工程就搞定了
接下来我们就需要去其他需要配置放到git上的子工程操作了
4. 配置客户端
4.1 相关依赖
<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.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
4.2 application.yml配置放到git上
这里注意了:
- 我们的子项目都有端口,所以我们为了区分最好要在appplication后加上你的端口号别搞混了
- 我们一个子工程的yml配置需要放3份 开发环境下的(dev) 测试的(test) 本身的(不写)
- 注意注意一定要分清楚
4.3 bootstrap.yml配置用来指定远端的配置
因为配置都放到远端了,所以我们需要,指定我们要的配置,而且不能用application了
创建一个bootstrap.yml
spring:
cloud:
config:
name: git上的文件名 #文件名
profile: dev/test/pro #加载哪个文件
uri: http://localhost:8989 #config服务器的地址
注意:因为application.yml文件我们放到了git中,所以我们在代码中就不需要application.yml了,可以重命名成bootstrap.yml在放入一下代码,不然会配置文件冲突导致开启不了(报一大堆到不到配置的错)
之后运行,就没问题了!