
跟燕青学Apollo分布式配置中心-Apollo快速入门
打开项目apollo-quickstart 新建配置项 提交并发布
新建Maven项目 添加Apollo客户端依赖
发布日期:2021-05-12 20:28:57
浏览次数:10
分类:精选文章
本文共 2347 字,大约阅读时间需要 7 分钟。
Apollo快速入门
1 Apollo执行流程
Apollo通过配置中心和客户端机制确保应用程序获取最新配置。配置中心会向客户端推送更新,客户端也会定期拉取最新配置。
1.1 修改配置
在Apollo配置中心修改或发布配置后,应用程序会通过以下方式获取最新值:
- 推送机制:配置中心实时推送给客户端
- 拉取机制:客户端定期从配置中心获取最新配置
2 安装Apollo
2.1 运行时环境要求
- Java:1.8+版本
- Apollo服务端:1.8+
- Apollo客户端:1.7+
- MySQL:5.6.5+版本
2.2 下载安装包
访问Apollo的GitHub官方仓库,下载对应版本的安装包。例如,选择1.3.0版本:
2.3 创建数据库
Apollo需要两个数据库:
- ApolloPortalDB:生产环境只需一个
- ApolloConfigDB:每个环境都需一套
数据库初始化脚本
2.4 启动Apollo服务
环境准备
- 确保端口8080、8090、8070未被占用
启动命令
- ApolloConfigService(默认端口8080)
java -Xms256m -Xmx256m -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=pbteach0430 -jar apollo-configservice-1.3.0.jar
- ApolloAdminService(默认端口8090)
java -Xms256m -Xmx256m -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring datasource.username=root -Dspring.datasource.password=pbteach0430 -jar apollo-adminservice-1.3.0.jar
- ApolloPortal(默认端口8070)
java -Xms256m -Xmx256m -Ddev_meta=http://localhost:8080/ -Dserver.port=8070 -Dspring datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8 -Dspring datasource.username=root -Dspring datasource.password=pbteach0430 -jar apollo-portal-1.3.0.jar
也可使用runApollo.bat
命令文件一键启动三服务。
3 代码实现
3.1 发布配置
发布新的配置项
sms.enable
3.2 应用读取配置
apollo-quickstart
com.ctrip.framework.apollo apollo-client 1.1.0
- 编写测试类
GetConfigTest
- 发布后,运行测试类观察结果
- 修改
sms.enable
为false
- 再次运行测试类,查看输出
- 修改代码为热发布模式
- 发布配置后,
- 控制台显示值已更新
public class GetConfigTest { public static void main(String[] args) throws InterruptedException { Config config = ConfigService.getAppConfig(); String someKey = "sms.enable"; String value = config.getProperty(someKey, null); System.out.println("sms.enable: " + value); }}
3.3 修改配置
3.4 热发布
public class GetConfigTest { public static void main(String[] args) throws InterruptedException { Config config = ConfigService.getAppConfig(); String someKey = "sms.enable"; while (true) { String value = config.getProperty(someKey, null); System.out.printf("now: %s, sms.enable: %s%n", LocalDateTime.now().toString(), value); Thread.sleep(3000L); } }}
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月11日 17时16分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
[排序算法] 4. 希尔排序(插入排序)
2019-03-09
[每日一题] 151. 只出现一次的数字(位运算、异或、常规解法)
2019-03-09
[LeetCode 双周赛22] 2. 安排电影院座位(排序、暴力优化、巧妙解法)
2019-03-09
[LeetCode 周赛181] 2. 四因数(暴力、常规解法)
2019-03-09
[M图论+bfs] lc127. 单词接龙(图论难题+建图+bfs求最短路)
2019-03-09
[M模拟] lc48. 旋转图像(模拟+思维)
2019-03-09
form表单
2019-03-09
JavaFX学习笔记-颜色选择器ColorPicker与日期选择器DatePicker
2019-03-09
使用Java在Windows上获取一个文件的创建时间
2019-03-09
Flutter学习笔记-主轴与交叉轴的对其方式
2019-03-09
工具研究:(三)Nginx配置错误的路由时均统一跳转到登录界面
2019-03-09
数据库设计原则与编写sql规范要求-据于阿里开发手册简化
2019-03-09
ant design pro v5去掉右边content区域的水印
2019-03-09
eclipse下清除项目的svn信息
2019-03-09
web_求和(练习)
2019-03-09
9. ArrayList与LinkedList的区别
2019-03-09
52. 什么时候会发生类初始化?
2019-03-09
JavaScript——使用iterator遍历迭代map,set集合元素
2019-03-09