为什么配置服务器
有时候,微服务要做集群,这就意味着,会有多个微服务实例。 在业务上有时候需要修改一些配置信息,比如说 版本信息吧~ 倘若没有配置服务, 那么就需要挨个修改微服务,挨个重新部署微服务,这样就比较麻烦。
为了减少工作量,可以把 这些配置信息就会放在一个公共的地方,比如git, 然后通过配置服务器把它获取下来,然后微服务再从配置服务器上取下来。
这样只要修改git上的信息,那么同一个集群里的所有微服务都立即获取相应信息了,这样就大大节约了开发,上线和重新部署的时间了。
如图所示,我们先在 git 里保存 version 信息, 然后通过 ConfigServer 去获取 version 信息, 接着不同的视图微服务实例再去 ConfigServer 里获取 version.
在git上创建配置文件
本来想在github上面创建的,结果网卡了一点,所以就在码云上创建了一个。码云可以直接用github的账号登录。
1、创建仓库
选择公开吧,免得还得输密码什么的。
2、创建文件夹
创建一个名为respo的文件夹
3、创建配置文件
创建配置文件product-view-service-dev.properties
里面就一行东西:
version = LaughterYoung springcloud version 1.0
创建子项目
创建子项目cofig-server
pom.xml
添加spring-cloud-config-serve依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>springcloud</artifactId> <groupId>edu.hpu.springcloud</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>config-server</artifactId> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <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> </dependencies> </project>
配置
application.yml:
spring: application: name: config-server cloud: config: label: master #表示分支 server: git: uri: https://gitee.com/LaughterYoung/springCloudConfig/ #表示git地址 searchPaths: respo #表示目录 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
启动类
ConfigServerApplication:
package edu.hpu.springcloud; import cn.hutool.core.util.NetUtil; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.config.server.EnableConfigServer; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableConfigServer //表示这是一个配置服务器 @EnableDiscoveryClient @EnableEurekaClient public class ConfigServerApplication { public static void main(String[] args) { int port = 8030; if(!NetUtil.isUsableLocalPort(port)) { System.err.printf("端口%d被占用了,无法启动%n", port ); System.exit(1); } new SpringApplicationBuilder(ConfigServerApplication.class).properties("server.port=" + port).run(args); } }
启动并访问
运行启动类,访问地址:http://localhost:8030/version/dev
参考:
【1】、http://how2j.cn/k/springcloud/springcloud-config-server/2047.html#nowhere
【2】、https://blog.csdn.net/yjw123456/article/details/84330523#Git_117