
nobodyiam/apollo-quick-start为帮助快速上手Apollo配置中心,以下提供本地环境部署、启动及使用的详细步骤。本文档基于Quick Start模式,适用于本地测试;生产环境部署需参考Apollo分布式部署指南。若熟悉Docker,也可通过Apollo Quick Start Docker部署快速部署。
注意:Quick Start需bash环境,Windows用户建议安装Git Bash,或通过IDE启动(详见Apollo开发指南)。
示例输出(版本符合即可):shjava -version
Windows用户需确保已配置shjava version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
JAVA_HOME环境变量。版本要求:5.6.5及以上(因Apollo表结构对timestamp使用多default声明,需此版本以上支持)
检查方法:连接MySQL后执行以下SQL
sqlSHOW VARIABLES WHERE Variable_name = 'version';
示例结果(版本符合即可):
| Variable_name | Value |
|---|---|
| version | 5.7.11 |
安装包已包含依赖及内置Tomcat,无需手动编译打包,直接下载使用即可(大小约50M)。
apollo-quick-start.zip若需修改源码后重新打包,步骤如下:
apollo-configservice、apollo-adminservice、apollo-portal的pom.xml中spring-boot-maven-plugin和maven-assembly-plugin插件shmvn clean package -pl apollo-assembly -am -DskipTests=true
apollo-assembly/target下的jar包,重命名为apollo-all-in-one.jarApollo服务端需两个数据库:ApolloPortalDB(门户数据库)和ApolloConfigDB(配置数据库)。以下为数据库创建及验证步骤。
导入SQL文件:通过MySQL客户端导入sql/apolloportaldb.sql(文件路径为安装包内或项目仓库中)
示例命令(MySQL原生客户端):
sqlsource /本地路径/sql/apolloportaldb.sql
验证导入:执行以下SQL,若返回结果含SampleApp则成功
sqlselect `Id`, `AppId`, `Name` from ApolloPortalDB.App;
预期结果:
| Id | AppId | Name |
|---|---|---|
| 1 | SampleApp | Sample App |
导入SQL文件:通过MySQL客户端导入sql/apolloconfigdb.sql
示例命令:
sqlsource /本地路径/sql/apolloconfigdb.sql
验证导入:执行以下SQL,若返回结果含timeout配置则成功
sqlselect `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;
预期结果:
| NamespaceId | Key | Value | Comment |
|---|---|---|---|
| 1 | timeout | 100 | sample timeout配置 |
修改安装包中的demo.sh文件,配置数据库连接串(确保用户有读写权限)。
sh# ApolloConfigDB连接信息 apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=数据库用户名 apollo_config_db_password=数据库密码(无密码则留空) # ApolloPortalDB连接信息 apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8 apollo_portal_db_username=数据库用户名 apollo_portal_db_password=数据库密码(无密码则留空)
Quick Start需占用本地3个端口(8070、8080、8090),启动前需确保端口未被占用。
shlsof -i:8070 # 检查8070端口 lsof -i:8080 # 检查8080端口 lsof -i:8090 # 检查8090端口
在安装包目录下执行启动命令:
sh./demo.sh start
若输出以下内容,说明服务启动完成:
sh==== starting service ==== Service logging file is ./service/apollo-service.log Started [***] Waiting for config service startup....... Config service started. You may visit [***] for service status now! Waiting for admin service startup.... Admin service started ==== starting portal ==== Portal logging file is ./portal/apollo-portal.log Started [***] Waiting for portal startup...... Portal started. You can visit [***] now!
若启动失败,可通过以下日志文件定位问题:
./service/apollo-service.log./portal/apollo-portal.logeureka注册失败日志(如Connection refused),属正常现象(服务需向自身注册,启动初期未就绪,后续会重试成功)。apollo,密码adminSampleApp进入配置界面,可见默认配置timeout=100客户端程序用于演示配置获取及动态更新,步骤如下:
sh./demo.sh client
timeout,输出如下即成功获取配置:
sh> timeout > [SimpleApolloConfigDemo] Loading key : timeout with value: 100
SampleApp配置界面,点击timeout项的“编辑”按钮,修改值为200并提交配置发布后,客户端会实时监听变化并输出日志:
sh[SimpleApolloConfigDemo] Changes for namespace application [SimpleApolloConfigDemo] Change - key: timeout, oldValue: 100, newValue: 200, changeType: MODIFIED
再次输入timeout,客户端返回更新后的值:
sh> timeout > [SimpleApolloConfigDemo] Loading key : timeout with value: 200
新应用接入可参考Apollo Java应用接入指南,完成依赖引入、配置等步骤。
client/META-INF/app.properties,将app.id改为新创建的项目AppId
propertiesapp.id=你的新项目AppId
./demo.sh client,按提示输入key即可获取自定义项目配置。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务