disconf浅入浅出(一)disconf简介以及disconf-web端使用

一、disconf介绍

1、disconf是什么

disconf是一个提供分布式配置管理的软件,所谓分布式配置管理就是为一组或多组分布式环境提供统一的配置管理服务,只需要在web管理控制端修改某个配置项,其他使用这个配置的客户端就可以接收到更改通知,重新拉取配置。

2、disconf组成部分
  • disconf-web::web控制台
  • disconf-client:客户端调用

二、disconf的web控制端安装

1、disconf-web安装需要安装以下软件
  • mysql
  • tomcat
  • nginx
  • zookeeper(3.3.6)
  • redis
  • jdk
  • maven
  • git(非必需,可以通过源码上传的方式来上传代码)
    注:mysql和zookeeper需要启动起来
2、disconf-web包安装
(1)下载disconf源码包
  1. cd /usr/local/src
  2. git clone https://github.com/knightliao/disconf.git
(2)建立disconf-web的部署目录
  1. mkdir -p /data/work/disconf-web
  2. mkdir /data/work/disconf-web/resources
  3. mkdir /data/work/disconf-web/war
  • /data/work/disconf-web为部署目录
  • /data/work/disconf-web/resources为配置文件目录
  • /data/work/disconf-web/war为war包目录

注:项目部署目录是自定义的,并根据自己环境的不同修改相应的配置

(3)将源码中的配置文件复制到部署目录中的配置目录中
  1. cp /usr/local/src/disconf/disconf-web/profile/rd/*.properties /data/work/disconf-web/resources/
  2. cd /data/work/disconf-web/resources
  3. mv application-demo.properties application.properties
(4)根据自己的环境修改相应的配置
  • jdbc-mysql.properties (数据库配置)
  • redis-config.properties (Redis配置,主要用于web登录使用,如果是单台服务器,也要配置两个client)
  • zoo.properties (Zookeeper配置)
  • application.properties (应用配置)

注:redis,mysql,zoo要按照自己的环境进行相应的修改

(5)构建项目,生成war包
  1. cd /usr/local/src/disconf/disconf-web
  2. export ONLINE_CONFIG_PATH=/data/work/disconf-web/resources
  3. export WAR_ROOT_PATH=/data/work/disconf-web/war
  4. chmod -R a+x deploy/
  5. sh deploy/deploy.sh

以上代码主要分为配置两个环境变量ONLINE_CONFIG_PATH(部署目录配置文件目录)和WAR_ROOT_PATH(war包目录)、执行部署脚本deploy/deploy.sh

(6)进入mysql客户端,导入sql语句

注:sql语句在disconf源码目录的sql目录中,请按照以下顺序执行sql

  1. /usr/local/mysql/bin/mysql -ushixinke -p
  2. source /usr/local/src/disconf/disconf-web/sql/0-init_table.sql
  3. source /usr/local/src/disconf/disconf-web/sql/1-init_data.sql
  4. source /usr/local/src/disconf/disconf-web/sql/201512/20151225.sql
  5. source /usr/local/src/disconf/disconf-web/sql/20160701/20160701.sql

里面默认有6个用户(请注意线上环境删除这些用户以避免潜在的安全问题)

name pwd
admin admin
testUser1 MhxzKhl9209
testUser2 MhxzKhl167
testUser3 MhxzKhl783
testUser4 MhxzKhl8758
testUser5 MhxzKhl112
(7)修改tomcat配置,部署war包,并重启tomcat

在tomcat配置文件server.xml的Host段(在Server.xml文件最后面)添加以下内容:

  1. <Context path="" docBase="/data/work/disconf-web/war"></Context>

注:以上内容主要是指定部署war根目录(可以修改端口号,也可以使用默认的8080)

(8)修改nginx配置,在nginx.conf中添加以下Server段
  1. upstream disconf {
  2. server 127.0.0.1:8080;
  3. }
  4. server {
  5. listen 8081;
  6. # server_name disconf.com;
  7. access_log logs/disconf-web_access.log;
  8. error_log logs/disconf-web_error.log;
  9. location / {
  10. root /data/work/disconf-web/war/html;
  11. if ($query_string) {
  12. expires max;
  13. }
  14. }
  15. location ~ ^/(api|export) {
  16. proxy_pass_header Server;
  17. proxy_set_header Host $http_host;
  18. proxy_redirect off;
  19. proxy_set_header X-Real-IP $remote_addr;
  20. proxy_set_header X-Scheme $scheme;
  21. proxy_pass http://disconf;
  22. }
  23. }

重启nginx,根据IP访问disconf-web,如http://192.168.0.100:8081

三、disconf-web的简单使用

1、登录disconf-web端,默认用户在步骤二中已经提及

在浏览器中输入disconf-web的登录地址,如:http://192.168.0.100:8081/login.html,输入用户名和密码

2、基本概念
  • APP:应用
  • 配置文件:应用对应的配置文件
  • 配置项:配置文件中最小的单位
3、新建一个项目的配置文件

这些操作项都在头部导航的“新建”菜单下:

  • (1)新建APP
  • (2)新建配置文件
  • (3)新建配置项
    如没有以上菜单项,请联系管理员是否有相应的权限
    环境名称可以通过修改数据库来更改
    如默认环境如下:

修改如下:

  1. use disconf;
  2. update env set name = "development" where env_id = 1;
  3. update env set name = "test" where env_id = 2;
  4. update env set name = "gray" where env_id = 3;