1. 前言
Disconf是由百度开源的一套分布式配置管理平台(Distributed Configuration Management Platform),专注于各种「分布式系统配置管理」的「通用组件」和「通用平台」, 提供统一的「配置管理服务」。
首先,实现了同构系统的配置发布统一化,提供了配置服务server,该服务可以对配置进行持久化管理并对外提供restful接口,在此基础上,基于zookeeper实现对配置更改的实时推送,并且,提供了稳定有效的容灾方案,以及用户体验良好的编程模型和WEB用户管理界面。其次,实现了异构系统的配置包管理,提出基于zookeeper的全局分布式一致性锁来实现主备统一部署、系统异常时的主备自主切换。
2. 配置前准备工作
部署规划
Disconf分为web端与client端,web端统一管理各个环境的配置,在此我们只需要部署web端即可。
Disconf的部署非常简单,它是java语言开发的程序,部署时只需将war包部署到相应位置即可运行,因此只需要在JDK+Tomcat环境中将disconf的war包部署即可。
为保证高可用,我们将disconf分别部署到三台服务器上,并在前端采用nginx实现动静分离+负载均衡。
disconf依赖tomcat环境部署路径:
/usr/local/disconf-tomcat/
disconf部署路径:
/home/disconf/war
disconf打包前配置文件存放路径:
/home/disconf/conf/
disconf日志文件存放路径:
/home/disconf/log/
disconf前端静态文件存放路径:
/home/disconf/war/html/
disconf-web监听端口:8085
disconf前端nginx监听端口:8888
准备安装程序
1 | # ls /home/soft/disconf/ |
创建相关安装目录
1 | # mkdir -pv /home/disconf/{conf,war,log} |
3. 部署配置Disconf
3.1 安装配置JDK环境
disconf是采用JAVA语言开发的程序,所以需要先安装配置JDK环境,本次因为我们部署disconf的服务器已配置过JDK环境,故在此略过配置详细步骤。
3.2. 部署配置MAVEN
因为最新版本的disconf仅提供源码,因此需要我们将源码下载到服务器,然后通过maven来打包,所以我们要先部署maven环境,只需在其中一台服务器上部署maven即可。
1 | # mv apache-maven-3.3.9 /usr/local/maven |
maven默认中央仓库为apache官方,在国内使用速度是相当之慢,因此,建议将中央仓库修改为阿里云仓库。
1 | # vim /usr/local/maven/conf/settings.xml |
maven配置成功。
3.3 为Disconf准备MySQL数据库环境
在MySQL服务器上创建数据库disconf并设置相应的用户。
1 | mysql> create database disconf; |
将disconf源码目录下的sql文件上传到MySQL服务器上,并按照readme.md文件中的说明,依此导入sql文件。
1 | # pwd |
3.4 下载并打包disconf-web
1 | # ls /home/soft/disconf/ |
将mvn编译打包需要的文件拷贝到/home/disconf/conf目录下。
1 | # cp disconf-web/profile/rd/* /home/disconf/conf/ |
修改配置文件
1 | # vim jdbc-mysql.properties |
编译disconf源文件,生成war包
1 | # pwd |
3.5 部署配置nginx+tomcat
nginx与tomcat的部署,在之前的文档有过详细说明,在此不赘述。
修改tomcat配置文件
1 | # vim /usr/local/disconf-tomcat/conf/server.xml |
修改nginx配置文件
1 | # vim /usr/local/openresty/nginx/conf/nginx.conf |
分别启动nginx、tomcat服务。
3.6 访问Disconf Web页面测试
1 | http://192.168.1.104:8888/ |