执行过程
工作原理
- Client(Java应用端)通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试
Spring Boot集成方式
maven依赖
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.4.0</version> </dependency>
配置
- 配置不同环境的 Apollo 地址,在 resource 目录下 新建 apollo-env.properties 文件
pro.meta=http://${ip}:${port}
- 配置 Apollo,在 resource 目录下 新建 application-apollo.properties 文件
# AppId是应用的身份信息 app.id=crowd-dsl # 使用命名空间 灰度使用 apollo.bootstrap.namespaces=all # 代表springboot在启动阶段就会加载 apollo.bootstrap.enabled=true # 将Apollo配置加载提到初始化日志系统之前 apollo.bootstrap.eagerLoad.enabled=false # 集群名称 apollo.cluster=PRO
启动类添加开启Apollo注解@EnableApolloConfig
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) // 开启 Apollo @EnableApolloConfig public class JpaDemoApplication { public static void main(String[] args) { SpringApplication.run(JpaDemoApplication.class, args); } }
服务启动
# 在原有的 jvm 参数上加上 -Denv=pro 采用 现网的 Apollo -Dapollo.bootstrap.namespaces=bug 使用不同的 namespaces 来做灰度 java -Denv=pro -Dapollo.bootstrap.namespaces=bug -jar crowd-dsl.jar