作者:红杏出墙的爱_408 | 来源:互联网 | 2024-11-28 19:02
Apollo系统概述
Apollo系统分为服务端和客户端两大部分。服务端采用SpringBoot和SpringCloud技术栈构建,具备独立运行能力,无需额外部署Tomcat等应用服务器。客户端则完全独立于任何特定框架,适用于所有Java运行环境,并且特别针对Spring/Spring Boot环境进行了优化支持。
Apollo功能特点
- 实现多环境、多集群配置的统一管理
- 支持配置变更即时生效(热更新)
- 提供配置版本控制及回滚机制
- 支持渐进式发布策略
- 强化安全控制,包括权限管理、发布审批与操作日志记录
- 可监控客户端配置状态
- 提供Java和.NET官方客户端库
- 开放API接口,便于第三方系统集成
关键概念解析
- 应用(Application):指使用Apollo进行配置管理的具体软件系统。
- 环境(Environment):代表应用运行的不同阶段,如开发、测试、生产等。
- 集群(Cluster):同一环境中可能存在的多个物理或逻辑部署单元。
- 命名空间(Namespace):用于组织和隔离配置项的逻辑分组。
项目管理实践
基本配置

用户权限管理


数据清理


新增命名空间


集群创建

集群配置加载
启动应用程序时需指定应用名、环境名、集群名及Meta服务地址:
-Dapp.id=应用名称
-Denv=环境名称
-Dapollo.cluster=集群名称
-D环境_meta=Meta服务地址
例如:
-Dapp.id=account-service -Denv=DEV -Dapollo.cluster=SHAJQ -Ddev_meta=http://localhost:8080

配置示例

代码实例

配置发布流程详解

配置发布的典型步骤包括:
- 用户通过Portal界面触发配置发布操作
- Portal向Admin Service发送请求执行发布任务
- Admin Service完成配置发布后,向各Config Service广播消息
- Config Service接收到消息后,向相关客户端推送更新通知
Spring Boot与Apollo集成教程
1. 添加依赖项
在项目的pom.xml或build.gradle文件中加入apollo-client依赖,并在主启动类上使用@EnableApolloConfig注解启用Apollo配置支持。配置文件(application.properties或application.yml)中需指定应用ID:
application.properties:
app.id=account-service
application.yml:
app:
id: account-service
2. 启用apollo.bootstrap
为了使Spring Boot应用能自动从Apollo加载配置,需要在配置文件中激活apollo.bootstrap并指定所需的命名空间:
apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=application,micro_service.spring-boot-http,spring-rocketmq,micro_service.spring-boot-druid
3. 设置Apollo Meta Server
Apollo允许应用根据所处环境使用不同的配置。常见的指定Meta Server的方法有两种:
- 通过Java系统属性-Dapollo.meta设置,如:-Dapollo.meta=http://localhost:8080
- 在resources目录下创建apollo-env.properties文件,定义不同环境下的Meta Server地址,例如:
dev.meta=http://localhost:8080
pro.meta=http://localhost:8081
从Apollo获取配置的示例代码如下所示:
