Java Apollo 配置中心本地部署与 Spring Boot 集成指南

竹里
竹里
发布时间:2026-10-16| 4人浏览过
原创

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),按照以下步骤创建配置资源:

  1. 新建应用:点击“新建应用”,输入 App ID(例如 app-demo-one-dev)和应用名称。
  2. 发布配置:在左侧菜单找到刚才创建的应用,进入“配置”页面。

图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 高级特性及生产环境部署的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。