新闻详情

新闻详情

首页 / 资讯中心 / 详情

Apollo Quick Start 快速上手指南:五分钟在本地启动 Apollo 配置中心(all-in-one 单机部署)

发布时间:2026/9/19 13:51:34来源:尧图网络
Apollo Quick Start 快速上手指南:五分钟在本地启动 Apollo 配置中心(all-in-one 单机部署)
Apollo Quick Start 快速上手指南五分钟在本地启动 Apollo 配置中心all-in-one 单机部署【免费下载链接】apolloApollo is a reliable configuration management system suitable for microservice configuration management scenarios.项目地址: https://gitcode.com/gh_mirrors/apoll/apollo导读本文是 docs/en/deployment/quick-start.md 的完整中文解读与源码级深化版面向希望在本地快速体验 Apollo 配置中心的开发者。通过阅读本文你将掌握环境准备Java 17/MySQL 5.6.5、Quick Start 安装包的获取与自定义打包、以 H2 内存库 / H2 文件库 / MySQL 三种方式一键启动 Apollo以及通过官方 Demo 客户端完成创建项目 → 配置发布 → 客户端热更新的完整闭环验证从而对 Apollo 的核心链路建立直观认识。重要提示Quick Start 只用于本地体验与功能演示切勿用于生产环境也不要将 8070/8080/8090 三个端口暴露到公网。生产部署请参照 distributed-deployment-guide。一、准备工作1.1 Java 运行环境组件版本要求Apollo 服务端Java 17Apollo 客户端Java 1.8需要注意Quick Start 的 all-in-one 安装包是自启动 jar 包内含全部依赖 jar 与内嵌 Tomcat 容器因此服务端必须使用较新的 JDK。若你的业务应用运行在 Java 1.7 环境应选用 1.x 版本的 apollo-client例如 1.9.1。配置完成后用如下命令验证java -version示例输出java version 17.0.14 Java(TM) SE Runtime Environment (build 17.0.147) Java HotSpot(TM) 64-Bit Server VM (build 17.0.147, mixed mode)Windows 用户请务必确认JAVA_HOME环境变量已正确设置。1.2 MySQL 版本要求如果计划使用 H2 内存数据库 / H2 文件数据库则无需安装 MySQL可直接跳过本节。若使用 MySQL要求版本5.6.5。原因是 Apollo 的表结构在多处使用timestamp类型的默认声明如DEFAULT CURRENT_TIMESTAMP、ON UPDATE CURRENT_TIMESTAMP参见 apolloconfigdb.sql 中App表的定义这一语法特性从 MySQL 5.6.5 起才可用。连接 MySQL 后可用如下命令检查版本SHOW VARIABLES WHERE Variable_name version;Variable_nameValueversion5.7.111.3 下载 Quick Start 安装包官方提供了现成的 Quick Start 安装包约 50M 左右下载后即可直接使用省去编译打包过程。安装包之所以较大是因为它是一个自启动 jar 包包含了所有依赖 jar 与内嵌 Tomcat 容器。获取方式任选其一GitHubclone 或下载 apollo-quick-start 项目。注意该仓库与主仓库分离地址是 https://github.com/apolloconfig/apollo-quick-start。百度网盘通过官方提供的网盘链接下载提取码见官方文档解压apollo-quick-start.zip到本地。1.3.1 手动打包 Quick Start 安装包Quick Start 仅用于本地测试一般无需自行打包但若你修改了源码想重新打包可参考以下步骤修改apollo-configservice、apollo-adminservice、apollo-portal三个模块的pom.xml注释掉spring-boot-maven-plugin和maven-assembly-plugin在仓库根目录执行mvn clean package -pl apollo-assembly -am -DskipTeststrue将apollo-assembly/target下的 jar 包复制出来并重命名为apollo-all-in-one.jar。从仓库源码看apollo-assembly/pom.xml 聚合了apollo-configservice、apollo-adminservice、apollo-portal三个模块并通过 maven-resources-plugin 把scripts/sql/profiles下的 H2 与 MySQL 初始化 SQL 一并复制进包内META-INF/sql/profiles这正是 all-in-one 包能够自动初始化数据库的基础。ApolloApplication.java 依次启动 commonContext、ConfigService、AdminService、Portal 四个 Spring 上下文完成三个服务在同进程内的聚合运行。二、初始化与启动注意事项必读Apollo 服务端进程需要占用8070Portal、8080ConfigService、8090AdminService三个端口启动前请确认这三个端口未被占用脚本中SPRING_PROFILES_ACTIVE的三个 profile 含义如下github必需 profile对应官方构建包的默认数据库配置组database-discovery指定使用数据库服务发现以数据库作为服务注册中心替代默认的 Eureka 发现auth为 Portal 提供基于 Spring Security 的简单认证若不需要认证或采用其他认证方式可移除Quick Start 仅供本地测试请勿将 8070/8080/8090 暴露到公网。以下启动命令默认关闭 H2 ConsoleSPRING_H2_CONSOLE_ENABLEDfalse如本地调试确实需要可自行调整该变量但同样要避免外网访问。从源码看database-discoveryprofile 对应 DatabaseDiscoveryService.java使用Profile(database-discovery)条件装配它通过DatabaseDiscoveryClient从数据库注册表中读取 ConfigService 实例列表各模块 application.properties 中spring.profiles.group.github mysql则把github与数据库类型 profile 关联起来。2.1 使用 H2 内存数据库自动初始化无需任何额外配置直接启动即可。但要注意使用内存数据库时进程重启后所有数据都会丢失。export SPRING_PROFILES_ACTIVEgithub,database-discovery,auth export SPRING_H2_CONSOLE_ENABLEDfalse unset SPRING_SQL_CONFIG_INIT_MODE unset SPRING_SQL_PORTAL_INIT_MODE java -jar apollo-all-in-one.jar2.2 使用 H2 文件数据库自动初始化H2 文件模式将数据持久化到本地文件重启后数据保留。脚本中~/apollo/apollo-config-db与~/apollo/apollo-portal-db可替换为任意自定义路径但需确保该路径有读写权限。2.2.1 首次启动初始化首次启动需设置SPRING_SQL_CONFIG_INIT_MODEalways与SPRING_SQL_PORTAL_INIT_MODEalways触发建库建表export SPRING_PROFILES_ACTIVEgithub,database-discovery,auth export SPRING_H2_CONSOLE_ENABLEDfalse # config db export SPRING_SQL_CONFIG_INIT_MODEalways export SPRING_CONFIG_DATASOURCE_URLjdbc:h2:file:~/apollo/apollo-config-db;modemysql;DB_CLOSE_ON_EXITFALSE;DB_CLOSE_DELAY-1;BUILTIN_ALIAS_OVERRIDETRUE;DATABASE_TO_UPPERFALSE # portal db export SPRING_SQL_PORTAL_INIT_MODEalways export SPRING_PORTAL_DATASOURCE_URLjdbc:h2:file:~/apollo/apollo-portal-db;modemysql;DB_CLOSE_ON_EXITFALSE;DB_CLOSE_DELAY-1;BUILTIN_ALIAS_OVERRIDETRUE;DATABASE_TO_UPPERFALSE java -jar apollo-all-in-one.jarURL 参数说明modemysql以 MySQL 兼容模式运行 H2保证与 Apollo 的 MySQL 建表语句兼容DB_CLOSE_ON_EXITFALSE与DB_CLOSE_DELAY-1避免 JVM 退出即销毁、保证文件数据库可跨进程复用BUILTIN_ALIAS_OVERRIDETRUE与DATABASE_TO_UPPERFALSE确保函数别名与小写表名等行为与 MySQL 对齐。2.2.2 后续启动跳过初始化后续启动需移除两个 INIT_MODE 变量避免重复初始化export SPRING_PROFILES_ACTIVEgithub,database-discovery,auth export SPRING_H2_CONSOLE_ENABLEDfalse # config db unset SPRING_SQL_CONFIG_INIT_MODE export SPRING_CONFIG_DATASOURCE_URLjdbc:h2:file:~/apollo/apollo-config-db;modemysql;DB_CLOSE_ON_EXITFALSE;DB_CLOSE_DELAY-1;BUILTIN_ALIAS_OVERRIDETRUE;DATABASE_TO_UPPERFALSE # portal db unset SPRING_SQL_PORTAL_INIT_MODE export SPRING_PORTAL_DATASOURCE_URLjdbc:h2:file:~/apollo/apollo-portal-db;modemysql;DB_CLOSE_ON_EXITFALSE;DB_CLOSE_DELAY-1;BUILTIN_ALIAS_OVERRIDETRUE;DATABASE_TO_UPPERFALSE java -jar apollo-all-in-one.jar2.3 使用 MySQL自动初始化脚本中your-mysql-server:3306需替换为实际的 MySQL 地址与端口ApolloConfigDB、ApolloPortalDB替换为实际库名apollo-username、apollo-password填实际的用户名和密码。2.3.1 首次启动自动建库建表export SPRING_PROFILES_ACTIVEgithub,database-discovery,auth export SPRING_H2_CONSOLE_ENABLEDfalse # config db export SPRING_SQL_CONFIG_INIT_MODEalways export SPRING_CONFIG_DATASOURCE_URLjdbc:mysql://your-mysql-server:3306/ApolloConfigDB?useUnicodetruecharacterEncodingUTF8 export SPRING_CONFIG_DATASOURCE_USERNAMEapollo-username export SPRING_CONFIG_DATASOURCE_PASSWORDapollo-password # portal db export SPRING_SQL_PORTAL_INIT_MODEalways export SPRING_PORTAL_DATASOURCE_URLjdbc:mysql://your-mysql-server:3306/ApolloPortalDB?useUnicodetruecharacterEncodingUTF8 export SPRING_PORTAL_DATASOURCE_USERNAMEapollo-username export SPRING_PORTAL_DATASOURCE_PASSWORDapollo-password java -jar apollo-all-in-one.jar2.3.2 后续启动跳过初始化export SPRING_PROFILES_ACTIVEgithub,database-discovery,auth export SPRING_H2_CONSOLE_ENABLEDfalse # config db unset SPRING_SQL_CONFIG_INIT_MODE export SPRING_CONFIG_DATASOURCE_URLjdbc:mysql://your-mysql-server:3306/ApolloConfigDB?useUnicodetruecharacterEncodingUTF8 export SPRING_CONFIG_DATASOURCE_USERNAMEapollo-username export SPRING_CONFIG_DATASOURCE_PASSWORDapollo-password # portal db unset SPRING_SQL_PORTAL_INIT_MODE export SPRING_PORTAL_DATASOURCE_URLjdbc:mysql://your-mysql-server:3306/ApolloPortalDB?useUnicodetruecharacterEncodingUTF8 export SPRING_PORTAL_DATASOURCE_USERNAMEapollo-username export SPRING_PORTAL_DATASOURCE_PASSWORDapollo-password java -jar apollo-all-in-one.jar2.4 使用 MySQL手动初始化2.4.1 手动初始化两个数据库在启动前通过任意 MySQL 客户端分别导入官方初始化脚本导入 apolloconfigdb.sql 创建ApolloConfigDBConfigService/AdminService 使用的配置库包含App、Cluster、Namespace、Item、Release等核心表导入 apolloportaldb.sql 创建ApolloPortalDBPortal 使用的管理库包含App、Role、UserRole、Permission等权限相关表。两个脚本开头均有CREATE DATABASE IF NOT EXISTS ... DEFAULT CHARACTER SET utf8mb4语句会自动建库。仓库中 h2-default 与 mysql-database-not-specified 等目录还提供了 H2 与未指定库名的变体。2.4.2 启动手动初始化后不要再设置 INIT_MODE 变量直接启动export SPRING_PROFILES_ACTIVEgithub,database-discovery,auth export SPRING_H2_CONSOLE_ENABLEDfalse # config db unset SPRING_SQL_CONFIG_INIT_MODE export SPRING_CONFIG_DATASOURCE_URLjdbc:mysql://your-mysql-server:3306/ApolloConfigDB?useUnicodetruecharacterEncodingUTF8 export SPRING_CONFIG_DATASOURCE_USERNAMEapollo-username export SPRING_CONFIG_DATASOURCE_PASSWORDapollo-password # portal db unset SPRING_SQL_PORTAL_INIT_MODE export SPRING_PORTAL_DATASOURCE_URLjdbc:mysql://your-mysql-server:3306/ApolloPortalDB?useUnicodetruecharacterEncodingUTF8 export SPRING_PORTAL_DATASOURCE_USERNAMEapollo-username export SPRING_PORTAL_DATASOURCE_PASSWORDapollo-password java -jar apollo-all-in-one.jar三、注意事项与边界Quick Start 仅用于快速体验 Apollo生产环境请参照 distributed-deployment-guideQuick Start 不支持新增环境Environment多环境能力只能通过分布式部署实现详见上述指南。四、使用 Apollo 配置中心4.1 使用示例项目SampleApp4.1.1 初始化示例配置打开 http://localhost:8070。Quick Start 集成了基于 Spring Security 的简单认证更多信息参见 Portal 实现用户登录功能 中的Implementation 1Apollo 自带的 Spring Security 简单认证。输入用户名apollo、密码admin登录。点击创建项目填写SampleApp信息并提交。进入 SampleApp 的配置界面点击添加配置项填写timeout并提交。点击发布按钮填写发布信息如发布备注、发布人完成发布。4.1.2 运行客户端程序官方提供了一个简单的 Demo 客户端用户输入一个 key 的名称程序输出该 key 对应的值若 key 不存在则输出undefined同时客户端会监听配置变更事件一旦配置发生变化即输出变更信息。运行./demo.sh client启动 Demo 客户端忽略之前的调试输出会看到如下提示Apollo Config Demo. Please input key to get the value. Input quit to exit. 输入timeout输出 timeout Loading key : timeout with value: 1000若客户端运行遇到问题可修改client/log4j2.xml中的日志级别为 DEBUG 查看详细日志logger namecom.ctrip.framework.apollo additivityfalse leveltrace AppenderRef refAsync levelDEBUG/ /logger4.1.3 修改配置并发布回到配置界面把timeout的值改为2000再次发布。4.1.4 客户端查看修改后的值若客户端仍在运行配置发布后它会监听到变更事件并输出Changes for namespace application Change - key: timeout, oldValue: 1000, newValue: 2000, changeType: MODIFIED再次输入timeout可看到新值 timeout Loading key : timeout with value: 2000这一过程直观展示了 Apollo 配置发布 → 客户端长连接实时感知变更 → 本地缓存更新的核心机制。4.2 使用新建项目4.2.1 应用接入 Apollo在 Portal 中新建项目后应用接入 Apollo 的具体步骤参见 Java 应用接入指南在应用中引入apollo-client依赖、配置app.id、指定apollo.meta服务地址等。4.2.2 运行客户端程序由于换用了新项目客户端需要修改appId信息编辑client/META-INF/app.properties把app.id改为你新建项目的 AppIdapp.idyour appId然后运行./demo.sh client启动 Demo 客户端即可从新建项目中读取配置。结语至此你已经完成了 Apollo 配置中心的本地快速体验从环境准备、安装包获取到 H2/MySQL 三种数据源模式的启动与初始化再到通过官方 Demo 完成创建项目 → 发布配置 → 客户端热更新的完整闭环。这套流程是理解 Apollo 架构Portal/ConfigService/AdminService 三服务协作、客户端长连接与本地缓存机制的捷径当需要支撑真实业务时请转入 分布式部署指南按模块拆分部署并配置多环境能力。【免费下载链接】apolloApollo is a reliable configuration management system suitable for microservice configuration management scenarios.项目地址: https://gitcode.com/gh_mirrors/apoll/apollo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

010 Editor 安装注册与模板使用完整教程:从二进制分析到脚本实战 2026/9/19 14:36:41

010 Editor 安装注册与模板使用完整教程:从二进制分析到脚本实战

1. 为什么一个十六进制编辑器值得单独写一篇安装注册教程如果你平时的工作跟二进制文件、磁盘镜像、游戏存档、嵌入式固件或者逆向分析沾边,那 010 Editor 这个名字大概率不会陌生。它跟市面上那些轻量级十六进制工具最大的区别在于:它有一套叫 Binary T…

阅读更多 →
BrewUI使用指南:为Homebrew打造可视化包管理界面 2026/9/19 14:36:41

BrewUI使用指南:为Homebrew打造可视化包管理界面

1. 为什么突然想给Homebrew配个界面:BrewUI到底做了什么如果你一直用Mac做开发,大概率对Homebrew不陌生。brew install、brew update、brew upgrade这一串命令,我们几乎天天在终端里敲,已经熟到条件反射。但用久了总会遇到几个让人…

阅读更多 →
Intel Mac上Homebrew安装失败?用BrewUI图形界面轻松管理 2026/9/19 14:36:41

Intel Mac上Homebrew安装失败?用BrewUI图形界面轻松管理

1. 一台Intel Mac把Homebrew装崩之后,我开始找图形界面1.1 那几行让人血压升高的报错我手头有一台2019年的Intel款MacBook Pro,平时跑一些老的自动化脚本,环境一直靠Homebrew维护。前段时间系统升级了一回,终端里敲brew&#xff0…

阅读更多 →
BrewUI体验:给Homebrew套上图形界面,告别命令行包管理焦虑 2026/9/19 14:36:41

BrewUI体验:给Homebrew套上图形界面,告别命令行包管理焦虑

最近我一直在折腾 macOS 下的开发环境,越折腾越发现一个很有意思的现象:很多人天天用 Homebrew 装包,却从来没意识到自己其实是在"裸奔"。什么裸奔?就是全靠命令行去管理那几百个软件包。brew list 一刷一大屏&#xff…

阅读更多 →
GMSK调制解调MATLAB实现:从原理到误码率分析 2026/9/19 14:36:41

GMSK调制解调MATLAB实现:从原理到误码率分析

简介:这是一份基于MATLAB的GMSK调制解调实验课程设计文档,面向通信工程专业本科生及需要完成同类课题的开发者,系统讲解了高斯滤波最小频移键控的调制解调原理、Simulink模型搭建与瑞利信道下的仿真验证。文档共1个docx文件,压缩包…

阅读更多 →
SAP SD定价过程详解:从条件类型到存取顺序的配置与排错 2026/9/19 14:33:41

SAP SD定价过程详解:从条件类型到存取顺序的配置与排错

简介:这是一份深入讲解SAP SD模块定价逻辑的Word文档,适合SAP SD顾问、实施人员及需要理解销售订单价格计算原理的ERP从业者。文档从R/3系统如何根据物料金额计算净价值与总金额切入,完整梳理了定价过程的确定框架、客户定价过程与单据定价过…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞