服务端搭建
0相关准备
-
准备一个github和本地文件夹,使用git来读取的
配置文件如下,内容随便写:
-
修改windows/system32/drivers/etc/hosts文件,添加
127.0.0.1 config-3344.com
-
启动前起码要有配置中心,不然孤立无援
1pom
<dependencies>
<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>
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2 yaml
server:
port: 3344
spring:
application:
name: cloud-config-center
cloud:
config:
server:
git:
uri: https://github.com/xxx/springcloud-config
search-paths:
- springcloud-config
label: master
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
3.主启动类
@EnableConfigServer
4访问
反正这里有个访问规则,使配置文件暴露出来
config-3344.com:3344/config-test.yml
或者 config-3344.com:3344/master/config-test.yml
都可以
客户端搭建
1pom
<dependencies>
<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>
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2bootstrap.yml
还不是太理解,暂时理解成一个比application优先级要高的?
server:
port: 3355
spring:
application:
name: config-client
cloud:
config:
label: master #分支
name: config #配置文件名
profile: dev #后缀名 反正合起来就是用config-dev这个文件
uri: http://localhost:3344
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka
3业务类🎃
由于config-dev中的内容是:
fuck:
dev
所以这个value去读配置文件的时候就是直接fuck
@RestController
public class AC {
@Value("${fuck}")
private String configInfo;
@GetMapping("/configInfo")
public String getConfigInfo(){
return configInfo;
}
}
4主启动类
不需要加EnableConfigCenter,那个给服务端用的
5访问
localhost:3355/configInfo
存在的问题
github上修改了,服务端3344可以读取到,但是3355刷新不了。难道每次都要重启?
动态刷新
操作步骤都是在客户端3355,只显示新加的部分,对比前面看就好了
1.pom引入actuator
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.yml暴露监控端口
#最顶端开始
management:
endpoints:
web:
exposure:
include: "*"
3.业务类加注解RefreshScope
@RefreshScope
4发送刷新请求
之前的还是不行,必须要post请求刷新
这个可以理解成避免重启?
curl -X POST "http://localhost:3355/actuator/refresh"
5遗留问题
还是很麻烦,一百条都发?
欲知后事,消息总线