Java教程

玩转apollo配置中心——springboot整合Apollo实现集中配置自动化更新

本文主要是介绍玩转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实现集中配置自动化更新的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!