分布式配置中心 Disconf实践- 安装篇

disconf 环境准备:

 Nginx:处理静态资源请求、动态请求转发到Tomcat 

 Tomcat:处理Nginx的请求 
 Zookeeper:管理Disconf配置信息,配置变更通过zk通知 
 Redis:用户session管理 
 MySQL:应用管理、用户管理、角色管理、环境管理、配置持久化

 Mavean:编译disconf源码打包;

 

一、下载DisConf :

  wget https://codeload.github.com/knightliao/disconf/zip/master

    将你的配置文件放到此地址目录下(以下地址可自行设定):

 /opt/program/servers/disconfig/online-resources

  拷贝/disconf-web/profile/rd/目录下的文件,拷贝过去后修改即可。

 配置文件包括

   image.png

cp application-demo.properties application.properties

 注意,即使只有一个redis,也应该配置两个redis client,redis必须是主从模式,否则将造成内部错误。*

 设置War包将要被部署的地址(以下地址可自行设定):

/opt/program/servers/disconfig/war

构建

ONLINE_CONFIG_PATH=/home/work/dsp/disconf-rd/online-resources
WAR_ROOT_PATH=/home/work/dsp/disconf-rd/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
cd disconf-web
sh deploy/deploy.sh

编译打包:

 vi /etc/profile
 ONLINE_CONFIG_PATH=/home/disconf/online-resources  
 WAR_ROOT_PATH=/home/disconf/war  
 export ONLINE_CONFIG_PATH  
 export WAR_ROOT_PATH  
 source  /etc/profile
 cd disconf-web  
 sh deploy/deploy.sh

 这样会在 /opt/program/servers/disconfig/war 生成以下结果:

  image.png

 还有其他的配置文件也都会在这个目录下

上线前的初始化工作

初始化数据库:

可以参考 sql/readme.md 来进行数据库的初始化。注意顺序执行

0-init_table.sql
1-init_data.sql
201512/20151225.sql
20160701/20160701.sql

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

name

pwd

admin

admin

testUser1

MhxzKhl9209

testUser2

MhxzKhl167

testUser3

MhxzKhl783

testUser4

MhxzKhl8758

testUser5

MhxzKhl112

如果想自己设置初始化的用户名信息,可以参考代码来自己生成用户:

src/main/java/com/baidu/disconf/web/tools/UserCreateTools.java

部署War

修改server.xml文件,在Host结点下设定Context:

<Context path="" docBase="/opt/program/servers/disconfig/war/disconf-web.war "></Context>

 

并设置端口为 8015

启动Tomcat,即可。

一、安装Nginx :

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

 

2、安装到/usr/local/nginx

  不懂Nginx  是可以看我之前的Nginx 系列文章:

   http://www.dczou.com/viemall/category/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/nginx

3、修改监听端口:

修改 nginx.conf

 upstream disconf {   
      server 127.0.0.1:8086;   
    }
        
         server {   
                    listen   1111;   
                    server_name localhost;   
                    access_log logs/disconf_access.log;   
                    error_log logs/disconf_error.log;   
                    
                    location / {   
                             root /opt/program/tools/disconfig/war/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;   
           } 
 
 }

二、安装Zookeeper 

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

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

  不懂Zookeeper是可以看我之前的Zookeeper 系列文章:

   http://www.dczou.com/viemall/category/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/zookeeper

三、安装Redis 

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

tar zxvf  redis-3.2.9.tar.gz 
cd redis-3.2.9 
make 
make install #安装后在/usr/local/bin会有redis的脚本 
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
cd  src
cp  mkreleasehdr.sh  redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server  /usr/local/redis/bin ;
cp  redis.conf /usr/local/redis/etc

3、启动 

  启动时并指定配置文件:./redis-server  /usr/local/redis/etc/redis.conf(注意要使用后台启动,所以修改redis.conf里的 daemonize 改为yes)

 验证启动是否成功:

  ps -ef | grep redis 查看是否有redis服务 或者 查看端口:netstat -tunpl | grep 6379

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

 cp /usr/local/redis/etc/redis.conf    /usr/local/redis/etc/redis_6380.conf #redis2启动在6380端口

  image.png

 vi redis_6380.conf  #配置slaveof 127.0.0.1 6379 

5、设置主从的shardname

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

不懂Redis是可以看我之前的Redis 系列文章:

 http://www.dczou.com/viemall/439.html

四、安装MySQL 

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

自行百度;

3、导入disconf的sql脚本:上述有提过;

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

 image.png

image.png

至此,全部安装结束,本地搭建Disconf成功,下一步就是让应用接入Disconf了!

 

编译好的Disconf安装包: 直接放入Tomcat就可运行;

 https://download.csdn.net/download/tang06211015/10318525