分布式配置中心 Apollo 实战 - 本地启动 Apollo 服务端
前言
本文基于 Apollo 1.9.2
版本,按照 官方文档 的介绍,在 M1
芯片的 MacBook Pro
上用 Docker
方式部署 Quick Start
是失败的,官方提供的 Docker
镜像暂不兼容 M1
芯片。所以选择用 bash
脚本的方式在本地部署。
准备工作
环境准备
JDK
:JAVA8+
。MySQL
:5.6.5+
。
下载 Quick Start 安装包
Apollo
为我们提供了打包好的 jar
包和启动脚本。可在 GitHub
上下载:
1 | git clone https://github.com/apolloconfig/apollo-build-scripts.git |
其它方式可参考 官方文档
安装步骤
初始化数据库
apollo-build-scripts
仓库中提供了数据库脚本文件,在 apollo-build-scripts/sql
目录下,分别是 apolloconfigdb.sql
和 apolloprotaldb.sql
。下面我们用图形化工具 Navicat
进行导入(注意:是导入而不是复制粘贴执行):
鼠标右键单击数据库连接->选择 Execute SQL File...
选择 /sql
目录下的 .sql
文件,点击 start
开始导入:
重复上述过程将另一个 .sql
文件也进行导入。
全部完成后,可通过以下 sql
语句进行验证:
1 | select `Id`, `AppId`, `Name` from ApolloPortalDB.App; |
Id | AppId | Name |
---|---|---|
1 | SampleApp | Sample App |
1 | select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item; |
NamespaceId | Key | Value | Comment |
---|---|---|---|
1 | timeout | 100 | sample timeout 配置 |
如没有以上输出则导入有误。
配置数据库连接信息
修改 apollo-build-scripts/demo.sh
脚本中的数据库连接信息:
1 | apollo config db info |
我的 MySQL
版本是 5.7.37
,务必确保 MySQL
连接字符串中添加了 useSSL=false
参数,否则 Hikari
连接池会连接失败。
启动 Apollo 配置中心服务端
确保 8070
、8080
和 8090
这三个端口未被占用。cd
到 apollo-build-scripts
目录下执行启动脚本:
1 | ./demo.sh start |
当看到如下输出后,说明启动成功了!
1 | ==== starting service ==== |
查看 Apollo 配置中心
浏览器访问 http://localhost:8070
,默认用户名密码为 apollo/admin
。
打开可看到示例 SampleApp
项目,已发布 timeout=100
配置。
客户端读取配置
创建 maven
项目 apollo-sample
。
添加依赖
1 | <!-- apollo客户端 --> |
编写代码
1 | package com.sunchaser.sparrow.middleware.apollo; |
添加 VM Options
:-Dapp.id=SampleApp -Denv=DEV -Ddev_meta=http://localhost:8080
。
运行后可看到输出 timeout
值为 100
。
停止 Apollo 配置中心服务端
cd
到 apollo-build-scripts
目录下执行启动脚本:
1 | ./demo.sh stop |
输出以下内容则正常停止:
1 | ==== stopping portal ==== |