一、简介
Apollo是携程框架中用于配置管理的开源解决方案。它具有分布式配置管理的功能,支持多语言客户端,支持私有云和公有云部署。使用Apollo可以极大的优化生产过程中的配置管理和发布。
二、配置中心基本功能
配置中心主要有配置数据的管理、配置生效和发布管理三个功能。配置中心提供简单的UI界面和Restful API,可以满足团队中不同的使用场景。
1. 配置数据管理
Apollo支持应用、环境、集群、命名空间、配置项等概念。在Apollo中,配置项是一个
@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两种场景的需求,为应对高流量、高可用性的生产环境中提供了不少优势。