玩转apollo配置中心——springboot整合Apollo实现集中配置自动化更新
2021/4/13 10:31:05
本文主要是介绍玩转apollo配置中心——springboot整合Apollo实现集中配置自动化更新,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前面我们一起交流了Apollo配置中心的基本原理以及各种环境的搭建,今天我们进行springboot整合Apollo实现集中化配置、自动化更新
应用场景
任何没有业务应用场景的技术都是纸上谈兵,先说说应用场景
随着现在微服务技术越来越火爆热门,越来越普及,当单体服务升级为集群或者微服务的时候,服务变多变复杂,相关的配置也会呈几何倍数增长
拿springboot举例,我们开发环境的时候,数据库参数、缓存各种参数都写在application配置文件中,测试、生产环境通过启动参数-Dspring.datasource....之类的进行指定。或者有些通过application-env配置文件进行不同环境的不同参数进行配置,在启动的时候指定当前运行环境-Dspring.profile.active=dev等。但是服务变多以后,配置参数的检查,更新将会是一个灾难性的场景,而且还不支持配置参数的热更新,修改参数后必须重新打包、重启应用。
所以在这种情况下,配置中心这种中间件应运而生,目前主流的有携程的Apollo、netflux的config、ali的nacos,今天我们主要讨论Apollo
应用整合
首先创建一个springboot应用,具体创建过程不是本文重点(略)
整合改造过程
1.修改pom添加Apollo依赖,以支持Apollo配置中心
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.4.0</version> </dependency>
2.填写Apollo信息配置
# 项目名称 app.id=${spring.application.name} # Apollo配置中心地址 apollo.meta=http://localhost:8080 # 是否开启spring参数自动更新 apollo.autoUpdateInjectedSpringProperties=true
3.启动类上面添加注解
在启动类上加上apollo开启注解@EnableApolloConfig
4.创建配置项
项目改造完成以后,打开浏览器输入apollo控制台地址进行配置的管理
创建一个和刚才创建的应用同名的应用(配置中的spring.application.name),然后在里面新增一个配置(因为8080端口被apollo占用,所以增加一个服务绑定端口的配置)
test=9995 server.port=8085
然后在springboot中创建一个controller
@RestController public class HelloController { @Value("${test}") private String test; @GetMapping("hello") public Object say() { System.out.println(res); return "hello " + test; } }
5.启动程序,进行测试
启动程序后,打开浏览器访问http://localhost:8085/hello即可看到页面上显示的“hello 9995”
当我们在apollo上对这个参数进行修改test=555并发布后,再访问http://localhost:8085/hello即可看到页面上显示的“hello 555”
这样就实现了服务的集中化配置,以及自动化热更新
这篇关于玩转apollo配置中心——springboot整合Apollo实现集中配置自动化更新的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?