Apollo配置中心
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
为什么选择Apollo作为配置中心?
市面上开源的配置中心例如:Apollo
、nacos
等。
选择配置中心也做了很多的考虑,最后选择Apollo
没有选择其他的,主要原因是Apollo
可以和Spring Boot
无缝集成,可以直接使用Spring
注解注入(@Value
或@ConfigurationProperties
)。
服务端部署
服务端安装和启动请参考Apollo官方安装文档,这里不做过多的描述
https://github.com/ctripcorp/apollo/wiki/Quick-Start
客户端使用
在框架中怎么集成apollo
配置中心
引入apollo客户端
在需要使用配置中心的项目中引入客户端
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.4.0</version>
</dependency>
配置连接信息
app:
id: SampleApp #你的appId
apollo:
meta: http://39.108.135.245:8080 #配置中心访问地址
bootstrap:
enabled: true #将在引导阶段插入“application”命名空间
namespaces: application #命名空间,多个逗号分隔
使用示例
@RestController
@RequestMapping("/config")
public class DemoController {
@Value("${wueasy.timeout:10000}")
private String timeout;
@RequestMapping("/timeout")
public String getConfig() {
return timeout;
}
}
常见问题
客户端访问配置中心失败?
注册中心启动默认会获取本地的ip注册(一般都是内网ip),客户端直接配置访问ip后,尤其是外网访问会直接连接失败,如果服务器是多网卡,也可能访问失败。
可以通过修改demo.sh
中,指定注册ip。
增加-Deureka.instance.ip-address=ip地址
完整如下:
BASE_JAVA_OPTS="-Denv=dev -Deureka.instance.ip-address=39.108.135.245"