玩转apollo配置中心——通过jar包搭建环境
一、Apollo配置中心介绍
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的额权限、流程治理等特性。
Apollo支持的四个维度管理的配置:
- application (应用)
- environment (环境)
- cluster (集群)
- namespace (命名空间)
同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo
这里需要提一点的就是
二、Apollo配置中心部署
1.环境准备
jdk8
mysql5.7
2.下载安装包
前往github下载安装包 https://codeload.github.com/nobodyiam/apollo-build-scripts/zip/refs/heads/master
这里下载的安装包是已经编译并打包好的安装包,解压后目录结构如下
-client Apollo客户端示例(可忽略)
-images 静态图片资源(可忽略)
-portal 管理系统目录
-service 核心功能目录
-sql 初始化数据库sql脚本目录
-demo.sh 启动脚本
3.配置中心部署
3.1.创建数据库
将安装包解压后的sql目录下的两个sql脚本拿到mysql中直接执行,完成后就会发现mysql中多了两个数据库并且库里也有部分数据表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| apolloconfigdb |
| apolloportaldb |
+--------------------+
3.2.修改启动脚本demo.sh
在编辑器中打开demo.sh启动脚本,修改脚本最前面的两个数据库配置,将数据库链接,帐号,密码配置正确
# apollo config db info apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai" apollo_config_db_username=root apollo_config_db_password=1234 # apollo portal db info apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai" apollo_portal_db_username=root apollo_portal_db_password=1234
3.3.打开控制台并运行启动脚本 将Apollo配置中心启动
配置中心启动成功后进程将在后台运行所以控制台窗口会消失,不必担心
# 启动配置中心 demo.sh start # 关闭配置中心 demo.sh stop
三、访问Apollo配置中心
打开浏览器,输入http://localhost:8070/回车即可进入Apollo管理页面
默认登录帐号为apollo 密码为admin
进入后可以看到系统已经默认创建了一个示例项目(sampleApp)
您可以根据你的项目实际,创建新的配置项目,在新的配置项目下创建集群、namespace以及新增配置项
这里先稍微提一下,Apollo配置中心的四个配置维度以及服务端的三个服务
服务端三个服务
portal——项目配置管理系统,你访问的8070端口就是访问的这个服务,该服务包含了后台管理系统以及创建的项目信息,使用portal这个数据库
configService——配置服务,向其他业务系统提供配置推拉更新的服务,业务系统和该服务建立连接来获取项目配置,使用config这个数据库
adminService——环境管理,负责指定环境的所有配置修改、发布、回滚、以及历史记录等等一系列的后台管理功能,使用config这个数据库
配置的四个维度
application——项目,项目可以认为是一级维度,用来区分不同项目的配置
environment——环境,诸如dev、sit、uat等等的这类环境,Apollo的这个环境要支持的话稍微有些复杂,后面再做详细交流,一个环境对应了一套配置服务,如果你要支持三个环境,那就要启动2*3+1=7个Apollo服务
cluster——集群,携程为了自己的某些实际情况加的一个维度,个人感觉对大部分项目都用不上。比如同一个项目,北京部署了2个,上海部署了2个,北京部署的访问的oss为***beijing.com,上海部署的访问的oss为***shanghai.com,这种情况就需要用到cluster,一般情况下我们都用默认,后面再做详细交流
namespace——命名空间,这个比较好,比如一个项目的配置,包含了关系型数据库信息、缓存数据库信息、支付相关配置等等,为了避免所有的配置都在一个里面不便管理,就可以在配置中添加多个命名空间,关系型数据库可以创建一个“datasource”命名空间,缓存数据库可以创建“cache”,支付的配置可以创建“pay”,这样项目在读取配置的时候直接读取这三个中的一个或多个配置,后面再做详细交流
至此,Apollo配置中心单机部署已经完成