首页 > 技术文章 > disconf搭建

fyboke 2017-01-05 14:23 原文

简介:

  Distributed Configuration Management Platform(分布式配置管理平台)

  它是百度的一套完整的基于zookeeper的分布式配置统一解决方案,具有如下特性:

  • 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线
  • 部署动态化:更改配置,无需重新打包或重启,即可 实时生效
  • 统一管理:提供web平台,统一管理 多个环境(RD/QA/PRODUCTION)、多个产品 的所有配置
  • 支持微服务架构   

模块架构图

 

 

模块信息

  • CLIENT: client目标是支持多语言。目前只提供了java语言客户端。
    • disconf-core: 分布式配置基础包模块
    • disconf-client: 分布式配置客户端模块, 依赖disconf-core包。 用户程序使用它作为Jar包进行分布式配置编程。
    • disconf-tool: 分布式配置工具包,依赖disconf-core包。 Disconf-tool是disconf的辅助工具类, 目前使用不多,建议不使用。
  • 管理端:disconf-web是统一的分布式配置管理平台。disconf-web: 分布式配置平台服务模块, 依赖disconf-core包。采用SpringMvc+纯HTML方式(前后端分离架构)实现。用户使用它来进行日常的分布式配置管理。

 

java client: disconf-client 使用

在您的 Maven POM 文件里加入:

<dependency>
    <groupId>com.baidu.disconf</groupId>
    <artifactId>disconf-client</artifactId>
    <version>2.6.31</version>
</dependency>

server: disconf-web 使用

部署方法请参见:https://github.com/knightliao/disconf/tree/master/disconf-web

 

根据官方文档,web部署基本上以下几步:

1.配置环境
  disconf运行需要的软件:zookeeper、redis、mysql、nginx、tomcat

2.下载代码
  cd work/github
  git clone https://github.com/knightliao/disconf.git

3.修改环境
  sudo vi /etc/profile,在文件的末尾加上
  ONLINE_CONFIG_PATH=/usr/local/xxx/disconf/source
  WAR_ROOT_PATH=/usr/local/xxx/disconf/war
  export ONLINE_CONFIG_PATH
  export WAR_ROOT_PATH

4.配置更改
  cp work/github/disconf/disconf-web/profile/rd/application-demo.properties jdbc-mysql.properties 

  redis-config.properties zoo.properties log4j.properties logback.xml rabbit.properties /usr/local/xxx/disconf/source
  将application-demo.properties修改成application.properties(mv或者cp命令都可以)
  然后将/usr/local/xxx/disconf/source下的这4个配置文件修改成自己环境相关的配置
  application.properties
  该文件中主要是配置了监控邮件发送和接受的服务器和邮箱地址
  zoo.properties
  主要修改里面的hosts,指定zookeeper集群的host的端口
  jdbc-mysql.properties
 主要修改数据库的host和mysql的用户名和密码
 redis-config.properties
 主要修改2个实例的host和端口

 log4j.properties
 主要修改日志存放的路径

log4j.appender.dailyRolling.File=/home/xxx/xxx/tomcat/log/disconf-log4j.log

 logback.xml
 主要修改web和监控的log存放位置

<property name="log.base" value="/home/xxx/tomcat/log/disconf-web"/>
<property name="log.monitor" value="/home/xxx/tomcat/log/monitor"/


rabbit.properties
修改用户名和密码以及端口(自己安装的默认端口是5672)

 

5.生成war包

  cd disconf/disconf-web
  sh deploy/deploy.sh

6.初始化数据库

如何初始化根据disconf-web下的sql文件夹下的README.md来初始化

7.tomcat配置,nginx配置
 在tomcat的server.xml中加入
 <Context path="" docBase="/usr/local/xxx/disconf/war"></Context>

 在http这个标记对里面加上如下配置(/etc/nginx/nginx.conf):
 upstream disconf {
    server 127.0.0.1:8080;
 }

 server {
    listen 8991;
    server_name localhost;
    access_log /home/xxx/nginx/log/disconf/access.log;
    error_log /home/xxx//nginx/log/disconf/error.log;
    location / {
        root /usr/local/xxx/disconf/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;
    }
}
upstream disconf 配置中的端口必须与tomcat启动的端口一致
server中listen是启动该disconf前端的端口
里面需要修改access_log和error_log指定log的位置
disconf使用前后端分离的部署方式,前端配置在nginx是那个,后端api部署在tomcat中

8.启动
  启动tomcat和nginx,浏览器输入:http://localhost:8991/
  用户名和密码都是admin
  ok,disconf的web操作服务搭建完成



 

推荐阅读