Java Apollo 配置中心本地部署与 Spring Boot 集成指南
Apollo 是一个分布式配置中心,本文将详细指导如何在本地快速搭建 Apollo 环境,并结合 Spring Boot 进行实战集成。内容涵盖从源码打包、数据库初始化到服务启动的完整流程,以及如何通过客户端 SDK 在 Java 项目中高效管理配置。
1. 搭建 Apollo 本地运行环境
为了进行本地开发与测试,我们需要利用 Apollo 提供的 Quick Start 脚本构建一个包含 Config Service、Admin Service 和 Portal 的完整本地实例。
第1步:准备安装包与源代码
首先获取 apollo-build-scripts 项目。可以通过 Git Checkout 或直接从 GitHub 下载该项目的源码包。
第2步:手动打包 Quick Start 镜像/Jar 包
默认情况下,部分 Maven 插件可能影响本地调试。请按照以下步骤修改构建配置:
- 修改 POM 文件:依次打开
apollo-configservice、apollo-adminservice和apollo-portal模块下的pom.xml文件。 - 注释插件:在上述文件中注释掉
spring-boot-maven-plugin和maven-assembly-plugin。 - 执行打包命令:在项目根目录下执行以下 Maven 命令:
mvn clean package -pl apollo-assembly -am -DskipTests=true
- 生成最终 Jar 包:进入
apollo-assembly/target/目录,将生成的 Jar 包重命名为apollo-all-in-one.jar。
第3步:初始化数据库
Apollo 服务端需要两个核心数据库:ApolloPortalDB(用于门户管理)和 ApolloConfigDB(用于配置数据)。
在 Apollo 安装包中找到对应的 SQL 文件,直接在 MySQL 数据库中创建并导入这两个库及其表结构。
第4步:配置数据库连接信息
编辑 Quick Start 启动脚本 demo.sh,找到数据库连接参数区域,填入之前创建数据库的用户名和密码。请确保该用户对两个数据库拥有读写权限。
#apollo config db info apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=root apollo_config_db_password=your_password # apollo portal db info apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8 apollo_portal_db_username=root apollo_portal_db_password=your_password
图1:Apollo 数据库连接参数示意
注意:请勿修改
demo.sh中的其他逻辑,以免破坏脚本功能。
第5步:调整默认端口(可选)
如果发现默认端口被占用,可以在 demo.sh 中修改 Meta Server 和服务地址。默认的端口分配如下:
- Config Server: 6001
- Admin Server: 6002
- Portal URL: 8080 / 8090(通常 Portal Web 页面运行在 8080 或 8090 端口,具体取决于脚本版本,常见为 8080)
# meta server url config_server_url=http://localhost:6001 admin_server_url=http://localhost:6002 eureka_service_url=$config_server_url/eureka/ portal_url=http://localhost:8080
第6步:启动 Apollo 服务
在终端或 Git Bash 中运行启动脚本:
./demo.sh start
等待脚本执行完毕,查看日志确认启动状态。成功的标志通常是各项服务(如 ConfigService, AdminService, PortalService)均显示 Started。
图2:启动成功日志输出
- 如果启动失败,请检查日志文件查找具体报错原因(通常是端口冲突或数据库连接错误)。
- 启动成功后,访问 Portal 界面。通常输入
http://localhost:8080即可看到 Apollo 的管理后台。
图3:Apollo 登录入口页面
图4:Apollo 配置中心主界面
第7步:验证登录
Apollo 内置了默认的管理员账号,可以直接使用以下凭据登录:
用户: apollo 密码: admin
2. Apollo 集成 Spring Boot 项目
环境搭建完成后,接下来需要在 Java (Spring Boot) 应用中接入 Apollo 客户端。Apollo 提供了两种接入方式:API 方式和 Spring 整合方式。对于 Spring Boot 项目,推荐使用 Spring 整合方式,因为它更简单且自动处理了很多生命周期管理。
第8步:引入 Apollo Client 依赖
在 Spring Boot 项目的 pom.xml 中添加 apollo-client 依赖。建议选用稳定版本的客户端 SDK。
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.3.0</version><!-- 请根据实际需求选择最新稳定版 --> </dependency>
第9步:在 Apollo 创建应用与配置
登录 Apollo Portal (http://localhost:8080),按照以下步骤创建配置资源:
- 新建应用:点击“新建应用”,输入 App ID(例如
app-demo-one-dev)和应用名称。 - 发布配置:在左侧菜单找到刚才创建的应用,进入“配置”页面。
图5:在 Apollo Portal 中新建应用
图6:配置私有 Namespace (app-demo-one-dev)
除了私有配置,Apollo 支持公共配置(Common),不同应用可以引用同一个公共 Namespace 以复用配置项。
图7:添加共有配置 Namespace (app-common-dev)
第10步:Spring Boot 端配置拉取
在 Spring Boot 项目的 application.yml(或 properties)中,开启 Apollo 的 Bootstrap 模式,并指定元数据服务器地址(即 Config Service 的地址)以及要加载的 Namespace。
apollo:
bootstrap:
eagerLoad:
enabled: true
enabled: true
namespaces: application,TEST1.ConfigOne
meta: http://localhost:8080 # 这里填写 Apollo Portal 的地址或 ConfigService 的Meta Server地址
app:
id: app-demo-one-dev代码说明:
apollo.bootstrap.enabled: true:启用 Bootstrap 模式,在应用启动早期加载配置。apollo.meta:指向 Apollo Config Service 的服务发现地址。在本地 Quick Start 模式下,通常指向 Portal 所在的域名或 IP,或者特定的 Meta Server URL。namespaces:指定需要拉取的 Namespace 列表。
第11步:读取配置值
在 Java 类中,可以通过 @Value 注解或直接注入 Config 对象来获取配置值。
@ApolloConfig
private Config config; // 注入特定 Namespace 的配置对象
// 或者使用 @Value 注解直接映射配置项
@Value("${keyName:defaultValue}")
private String keyName;总结
通过以上步骤,我们完成了 Apollo 配置中心的本地化部署,并将其成功集成到了 Spring Boot 应用中。这种方式不仅实现了配置的外部化管理,还支持配置的实时热更新,极大地提升了开发效率与运维灵活性。以上就是 Apollo 配置中心本地搭建与 Spring Boot 集成的详细内容,更多关于 Apollo 高级特性及生产环境部署的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













