Disconf实践指南:安装篇和使用篇【转】

Disconf是百度开源出来的一款基于Zookeeper的分布式配置管理软件。目前很多公司都在使用,包括滴滴、百度、网易、顺丰等公司。通过简单的界面操作就可以动态修改配置属性,还是很方便的。使用Disconf后发现的一大好处是省却应用很多配置,而且配置可以自动load,实时生效。

Disconf优点总结如下:

部署简单:同一个上线包,无须改动配置,即可在多个环境中上线
部署动态化:更改配置,无需重新打包或重启,即可实时生效
统一管理:提供web平台,统一管理多个环境多个产品的所有配置

如果想直接了解如何使用Disconf,可直接阅读Disconf实践指南:使用篇,不过了解如何安装可以更深入了解Disconf的工作原理,同时方便以后代码的调试。

需要安装Nginx、Tomcat、Zookeeper、Redis和MySQL。
Nginx:处理静态资源请求、动态请求转发到Tomcat
Tomcat:处理Nginx的请求
Zookeeper:管理Disconf配置信息,配置变更通过zk通知
Redis:用户session管理
MySQL:应用管理、用户管理、角色管理、环境管理、配置持久化

一、安装Nginx
1、Nginx官网下载源码包
下载稳定版本:nginx-1.12.0.tar.gz

2、安装到/usr/local/nginx

tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure –prefix=/usr/local/nginx –with-zlib=../zlib-1.2.11 –with-pcre=../pcre-8.39
make
sudo make install

3、修改监听端口

server {
        listen       8091;
        server_name  localhost;

        index index.html;
        #charset koi8-r;

        #access_log  logs/disconf_access.log;

    location / {
            #root /Users/chubin/Applications/disconf-stable/disconf-web/html;
            root /usr/local/disconf/war/html;
        index index.html;
        }
    }
  • 1

4、启动Nginx

cd /usr/local/nginx
启动
sudo sbin/nginx #ps aux | grep nginx或者访问localhost:8091
重启
sudo sbin/nginx -s reload
停止
sudo sbin/nginx -s stop

5、将disconf-stable/disconf-web/html复制到/usr/local/disconf/war/

6、修改Nginx代理配置和静态资源目录

upstream disconf {
        server 127.0.0.1:8080; #tomcat服务器的地址
    }

    server {
        listen       8091; #监听端口
        server_name  localhost;

        index index.html;
    location / {
            root /usr/local/disconf/war/html; #静态资源目录
        index index.html;
        }

        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;
        }
     }

 

二、安装Tomcat
1、Tomcat官网下载安装包
下载Tomcat 7.x以上的版本:apache-tomcat-8.5.15.tar.gz
2、安装到任意目录
/xxx/apache-tomcat-8.5.15
3、启动Tomcat

./catalina.sh start #访问浏览器localhost:8080

三、安装Zookeeper
1、Zookeeper官网下载安装包
zookeeper-3.4.10.tar.gz
2、启动Zookeeper

cd zookeeper-3.4.10/bin
./zkServer start #ps aux | grep zoo验证进程是否起来
./zkCli.sh #zk客户端

四、安装Redis
1、下载Redis源码包,Redis官网
2、解压安装

tar zxvf ../Downloads/redis-3.2.9.tar.gz
cd redis-3.2.9
make
make install #安装后在/usr/local/bin会有redis的脚本
cp redis.conf /etc
vi /etc/redis.conf ##将daemonize no改为daemonize yes
/usr/local/bin/redis-server /etc/redis.conf
ps aux | grep redis #如果启动成功会有redis的进程

3、配置主从
由于Disconf至少需要配置两台redis-client,所以我们可以在一台机器(本机)上安装master/slave模式的redis集群

cp /etc/redis.conf /etc/redis2.conf #redis2启动在6380端口
vi redis2.conf #配置slaveof 127.0.0.1 6379
sudo ./redis-server /etc/redis2.conf
ps aux | grep redis

4、设置主从的shardname

./redis-cli #redis.conf
auth foobared
set name ‘BeidouRedis1’
./redis.cli #redis2.conf
auth foobared
set name ‘BeidouRedis2’

五、安装MySQL
1、下载MySQL源码包,MySQL官网
2、安装MySQL

tar zxvf ../Downloads/mysql-5.7.18-macos10.12-x86_64.tar.gz
sudo mv mysql-5.7.18 /usr/local/mysql #移动MySQL到安装目录
sudo support-files/mysql.server start #启动MySQL
./mysqladmin -u root -p password 1234 #修改root用户初始密码
./mysql -u root -p 1234 #自带客户端连接MySQL

3、如果觉得麻烦,可以直接下载dmg安装文件,简单省事
4、导入disconf的sql脚本

  • 0-init_table.sql #建库建表
  • 1-init_data.sql #插入数据
  • 201512/20151225.sql #历史配置表

5、最终数据库如下:
disconf

六、安装Disconf
1、下载Disconf源码包,Disconf-stable
disconf-stable
2、导入IDEA,运行Disconf
到disconf-web目录,将online-resources下的配置文件拷贝一份到src/main/resources下,包含的文件有:

application.properties #应用自身的配置文件
jdbc-mysql.properties #数据库配置
redis-config.properties #redis配置
zoo.properties #Zookeeper配置

如果以上配置都OK的话,在IDEA启动本地Tomcat,访问http://localhost:8091,默认账户admin/admin。

disconf1

disconf2

至此,全部安装结束,本地搭建Disconf成功,下一步就是让应用接入Disconf了。安装配置有任何问题欢迎评论O(∩_∩)O哈!

 

三、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;

 

转自

Disconf实践指南:安装篇 - 程序员大本营
https://www.pianshen.com/article/131028152/

Disconf实践指南:使用篇 - 程序员大本营
https://www.pianshen.com/article/385028148/

disconf浅入浅出(一)disconf简介以及disconf-web端使用 诗心博客
http://www.shixinke.com/java/disconf-introduction-and-disconf-web

posted @ 2023-02-15 10:36  paul_hch  阅读(194)  评论(0编辑  收藏  举报