springcloud学习之路: (五) springcloud集成Spri…
2019-10-12 08:27:45来源:博客园 阅读 ()
springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心
SpringCloud
全家桶中的分布式配置中心SpringCloudConfig
, 它使用git
来管理配置文件, 在修改配置文件后只需要调用一个接口就可以让新配置生效, 非常方便.
SpringCloudConfig分为两部分, 服务端和客户端, 服务端是用来提供
配置文件信息的, 而客户端是用来使用
配置文件信息的, 我们接下来就开始集成.
一、SpringCloudConfig服务端
1. 新建一个Module
2. 选择springboot工程
3. 起个名字
4. 选择配置中心服务端
5. 选择注册中心客户端
6. 配置application.properties文件
# 服务端口
server.port = 8088
# 填写注册中心服务器地址
eureka.client.service-url.defaultZone = http://localhost:8081/eureka
# 注册配置中心别名
spring.application.name = service-config
# 配置存储地址(git)
spring.cloud.config.server.git.uri = https://gitee.com/XXX/spring-cloud-config
# 存储文件夹
spring.cloud.config.server.git.search-paths = myconfig
# git主分支
spring.cloud.config.label = master
7. 配置service-config启动文件
// 开启注册中心客户端
@EnableEurekaClient
// 开启配置中心服务器
@EnableConfigServer
二、git仓操作
1. 新建git仓
填写信息
2. 新建文件夹
命名文件夹
3. 新建文件
写入信息
文件的命名是有规范的, [服务名称-环境. properties]否则你的服务器无法读取配置文件, 我们来查看一下service-a
的配置文件名称
所以我们的配置文件应该叫
service-objcat-a-dev. properties
三、启动服务访问
http://localhost:8088/service-objcat-a-dev.properties
http://localhost:8088/service-objcat-a-dis.yml
运行无问题
四、SpringCloudConfig服务端
给service-a
开启分布式配置服务
1. 首先在service-a的pom
中添加依赖
<!-- 分布式配置中心客户端依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
2. 修改配置文件
把application.yml
修改成bootstrap.yml
这里说一下, 这两个名字都是应用的配置文件, 但是bootstrap.yml
会先执行, 其次是配置分布式配置中心服务器的规范就是在bootstrap.yml
中配置的, 这俩个配置文件可以共存, 这里为了方便起见, 所以直接就改名了, 我们继续
# 分布式配置中心
cloud:
config:
profile: dev
discovery:
enabled: true
service-id: service-config
注意别名一定要跟你上面配置服务器的名称一致, profile
千万不要乱写, 写你需要应用配置文件的环境, 还记得我们的配置文件命名方式吗 [服务名-环境.yml
]
3. 到这里已经配置完成了, 我们来写个接口验证一下吧!
@Value("${name}")
private String name;
@RequestMapping("/hello")
public String hello() {
return name;
}
@value
就是从配置文件中读取一个字段, 我们name
这个字段是存在服务端的, 所以如果可以读取出来, 就证明分布式配置中心是可以用的, 之后我们来运行一下服务
访问接口
http://localhost:8082/hello
4. 动态更改
现在我们的配置文件还不能做到远程动态更改, 我们接下来要做的就是线上刷新字段, 不需要重启服务器, 我们首先给service-a
导入监控模块
的包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
5. 修改配置文件, 在配置文件中增加如下字段 暴露所有endpoints
management:
endpoints:
web:
exposure:
include: "*"
6. 在控制器中配置刷新注解@RefreshScope, 只有配置过刷新注解的控制器中的值才会被刷新.
7. 重启服务
8. 修改git上的配置信息
9. 再次访问, 发现没有任何变化
10. 这里需要调用一个刷新接口即可, 注意一定要使用post
请求, 可以使用命令行或者postman
.
命令行:
curl -X POST http://localhost:8082/actuator/refresh
postman:
http://localhost:8082/actuator/refresh
11. 再次访问接口, 成功
原文链接:https://www.cnblogs.com/zhainan-blog/p/11648157.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- java学习之第一天 2020-06-11
- Java学习之第二天 2020-06-11
- Spring WebFlux 学习笔记 - (一) 前传:学习Java 8 Stream Ap 2020-06-11
- Linux简单命令的学习 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash