您的位置:

Apollo配置中心

一、简介

Apollo是携程框架中用于配置管理的开源解决方案。它具有分布式配置管理的功能,支持多语言客户端,支持私有云和公有云部署。使用Apollo可以极大的优化生产过程中的配置管理和发布。

二、配置中心基本功能

配置中心主要有配置数据的管理、配置生效和发布管理三个功能。配置中心提供简单的UI界面和Restful API,可以满足团队中不同的使用场景。

1. 配置数据管理

Apollo支持应用、环境、集群、命名空间、配置项等概念。在Apollo中,配置项是一个 对,而Key通常由三部分组成(命名空间、配置项和Profile),Value是一个字符串。


@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {
 
    @Autowired
    Environment env;
     
    @Bean
    public MyBean myBean() {
        MyBean myBean = new MyBean();
        myBean.setName(env.getProperty("name"));
        myBean.setAge(env.getProperty("age", Integer.class));
        return myBean;
    }
}

2. 配置生效

Apollo的配置生效方式采用客户端自动更新的方式,无需重启应用。客户端通过监听配置中心,当配置更新时,客户端会自动拉取最新的配置并应用到应用程序中。


@Autowired
private XxxProperties xxxProperties;
 
public void init() {
    xxxService.setConfig(xxxProperties.getHost(), xxxProperties.getPort());
}

3. 发布管理

Apollo支持配置的发布管理功能,提供了灰度发布和回滚发布等功能,可以在多个环境下进行配置的管理与发布。配置管理的灵活性和高效性在应对高流量、高可用性的生产环境中是非常有优势的。

三、多语言客户端支持

Apollo支持多种编程语言客户端,并且提供了对应的各种SDK。包括Java、C++、Python、C#、Node.js等多种语言的SDK。通过SDK可以方便快捷地在应用程序中引入Apollo的配置管理功能。

四、部署方式

Apollo可以支持私有云、Public cloud两种部署方式。在私有云环境中,可以选择单机模式、集群模式或者镜像模式进行部署。在Public cloud环境中,可以选择在公有云上部署,或者选择使用阿里云Apollo服务进行部署,支持快速部署、自定义域名等多种配置方式。

五、总结

Apollo是一款优秀的配置管理工具,通过简单的操作,即可把配置中心的管理贯串到整个生产流程中。并且支持多种语言的客户端,可以方便地与原有应用进行整合。在部署方式上,兼顾私有云、Public cloud两种场景的需求,为应对高流量、高可用性的生产环境中提供了不少优势。