序言:Disconf是一个分布式配置管理平台,用于管理分布式系统配置文件。分布式系统越来越流行,随着节点的增加,配置文件修改起来也越来越困难,百度的分布式配置管理平台由此而生。它能够统一管理各个节点的配置文件,统一配置和修改。
安装Disconf需要的环境
安装Linux:CentOS7
安装Zookeeper:zookeeper-3.4.6
安装Redis:redis-3.0.0
安装Nginx:nginx-1.8.0
安装MySQL:mysql-community-release-el6-5.noarch.rpm
安装Tomcat:apache-tomcat-8.0.28
Disconf进行构建时需要maven命令,所以需要安装Maven。
1、下载maven的资源文件 apache-maven-3.3.3-bin.zip,并解压,并上传至服务器
2、配置maven的连接配置setting使其能够连接中央仓库或者本地私服
2.1、在此我是连接自己的私服nexus
nexus本地私服部署https://blog.csdn.net/qq_31854907/article/details/83145374
2.2、maven配置https://blog.csdn.net/qq_31854907/article/details/85014708
2.3设置maven的centos7的环境变量
vi /etc/porfile
新增maven的环境变量
# set MAVEN_HOME
export MAVEN_HOME=/home/wangyong/maven/apache-maven-3.3.3
export PATH=$PATH:$MAVEN_HOME/bin
2.4、使环境设置生效,
source /etc/profile
至此maven的centos7环境部署已经完成,可以使用 mvn -v指令进行测试
3、进行disconf 分布式配置平台的部署
3.1、创建文件夹
(以下的文件夹路径读者可自行设置!)
配置文件所在路径:
/home/wangyong/disconf/online-resources |
源码所在路径:
/home/wangyong/disconf/code |
disconf服务运行包War所在文件包所在路径:
/home/wangyong/disconf/war |
disconf 运行日志
/home/wangyong/disconf/logs
3.2、下载源码
进入到disconf/src下,在GitHub上面直接下载源码,利用下面的命令:
cd /home/wangyong/disconf/code
git clone https://github.com/knightliao/disconf.git
如果提示没有git命令,执行下面的命令安装git命令:
yum install git -y
源码下载后在/home/wangyong/disconf/code目录下会有disconf所需要的源码
3.3、拷贝配置文件
将/home/wangyong/disconf/code/disconf/disconf-web/profile/rd路径下的配置文件拷贝到/home/wangyong/disconf/online-resources(要将application-demo.properties文件改名为application.properties),并修改相应的配置文件。
拷贝命令:
cd /home/wangyong/disconf/code/disconf/disconf-web/profile/rd
cp zoo.properties /home/wangyong/disconf/online-resources/zoo.properties
cp redis-config.properties /home/wangyong/disconf/online-resources/redis-config.properties
cp jdbc-mysql.properties /home/wangyong/disconf/online-resources/jdbc-mysql.properties
cp application-demo.properties /home/wangyong/disconf/online-resources/application.properties
cd /usr/local/disconf/resource
mv ./application-demo.properties ./application.properties
3.4、修改相应的配置文件
这些配置文件修改后,都需要重新进行系统构建。
jdbc-mysql.properties(数据库的配置):
将mysql的连接地址、用户名和密码改为相应数据库的信息。
redis-config.properties(配置redis的地址):
修改相应的host和port,如果redis是集群,可配置相应的节点;如果redis是单机版,也必须配置两个redis-client(否则会报错),两个redis-client配置相同的host和port即可。
zoo.properties(zookeeper的地址配置):
将Zookeeper集群的ip和端口号配置在hosts属性中即可,各节点地址之间用英文逗号隔开,其他不用修改。
日志文件的配置可以不用修改,如需修改参考网上log4j配置文件修改方式修改即可。
3.5、修改环境变量
修改环境变量,将创建的配置文件的路径和war包的路径配置在环境变量中。
vi /etc/profile
按“i”开启编辑,将下面的内容添加到环境变量的最后面:
#disconf
#disconf配置文件所在文件夹
export ONLINE_CONFIG_PATH=/home/wangyong/disconf/online-resources
#disconf运行war所在文件夹
export WAR_ROOT_PATH=/home/wangyong/disconf/war
按Esc结束编辑,使用“:x”命令退出,利用下面的命令使环境变量生效:
source /etc/profile
3.6、构建(在此过程中需要使disconf所依赖的各种环境的服务是出于开启的状态,否则出现无法正常打包的情况)
利用deploy/deploy.sh进行构建,构建过程会download很多东西,可能会有些慢,虚拟机要一直保持能上网的状态:
cd /home/wangyong/disconf/code/disconf/disconf-web
sh deploy/deploy.sh
构建完成后,在war目录下会生成相应的内容,主要的是加粗的那几项:
上线前的初始化工作
4、初始化数据库
在/home/wangyong/disconf/code/disconf/disconf-web/sql目录下有sql文件,将这些sql文件初始化到数据库中。这四个sql文件的执行是有顺序的,按照sql/readme.md文件中的顺序执行。
0-init_table.sql
1-init_data.sql
201512/20151225.sql
20160701/20160701.sql
5、配置Tomcat
将构建时打成的war包部署到Tomcat中,需要修改Tomcat的server.xml文件,在Host节点下设定Context:
<Context path="" docBase="/usr/local/disconf/war"></Context>
6、启动tomcat服务
cd /home/wangyong/tomcat/apache-tomcat-disconf-8.5.32/bin
./startup.sh
查看tomcat运行日志,监控服务是否正常启动
/home/wangyong/tomcat/apache-tomcat-disconf-8.5.32/logs
tail -f catalina.out
7、部署前端
修改nginx.conf文件,将下面的内容添加进去:
upstream disconf {
server 127.0.0.1:8085;#Tomcat的IP和端口号,这里改成了8085
}
server {
listen 8080;#nginx监听的端口号
server_name disconf.com;#可自行定义,但必须与application.properties中的domain属性的值一样
access_log /home/work/var/logs/disconf/access.log;
error_log /home/work/var/logs/disconf/error.log;
location / {
root /usr/local/disconf/war/html;#html所在的路径
if ($query_string) {
expires max;
}
}
location ~ ^/(api|export) {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://disconf;
}
}
运行效果
主页面:
登录页面(默认用户名和密码:admin/admin):
操作主界面:
总结
安装过程中,在构建时遇到了缺少jar包的问题,因为当时安装maven时,是采用的安装tar文件。后来将maven的安装过程改为了在线安装,也就是上面文档中的安装方式,该问题就不存在了。具体原因正在研究,过路的各位大牛如果有解决方案,麻烦在评论中告知,谢谢。