美文网首页
Disconf 配置文档

Disconf 配置文档

作者: Kuco_Shen | 来源:发表于2018-07-23 12:07 被阅读0次

    Disconf

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

    专注于各种「分布式系统配置管理」的「通用组件」和「通用平台」, 提供统一的「配置管理服务」

    主要目标:

    • 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线
    • 部署动态化:更改配置,无需重新打包或重启,即可 实时生效
    • 统一管理:提供web平台,统一管理 多个环境(RD/QA/PRODUCTION)、多个产品 的所有配置
    • 核心目标:一个jar包,到处运行

    demos && 文档 && 协作

    版本

    • dev(dev branch): 2.6.36
    • master(latest && cooperate && contribute branch):2.6.36
    • stable(release && stable branch): 2.6.36

    功能特点

    • 支持配置(配置项+配置文件)的分布式化管理
    • 配置发布统一化
      • 配置发布、更新统一化:
        • 同一个上线包 无须改动配置 即可在 多个环境中(RD/QA/PRODUCTION) 上线
        • 配置存储在云端系统,用户统一管理 多个环境(RD/QA/PRODUCTION)、多个平台 的所有配置
      • 配置更新自动化:用户在平台更新配置,使用该配置的系统会自动发现该情况,并应用新配置。特殊地,如果用户为此配置定义了回调函数类,则此函数类会被自动调用。
    • 极简的使用方式(注解式编程 或 XML无代码侵入模式):我们追求的是极简的、用户编程体验良好的编程方式。目前支持两种开发模式:基于XML配置或者基于注解,即可完成复杂的配置分布式化。

    注:配置项是指某个类里的某个Field字段。

    Disconf的功能特点描述图:

    其它功能特点

    • 低侵入性或无侵入性、强兼容性:
      • 低侵入性:通过极少的注解式代码撰写,即可实现分布式配置。
      • 无侵入性:通过XML简单配置,即可实现分布式配置。
      • 强兼容性:为程序添加了分布式配置注解后,开启Disconf则使用分布式配置;若关闭Disconf则使用本地配置;若开启Disconf后disconf-web不能正常Work,则Disconf使用本地配置。
    • 支持配置项多个项目共享,支持批量处理项目配置。
    • 配置监控:平台提供自校验功能(进一步提高稳定性),可以定时校验应用系统的配置是否正确。

    安装依赖软件

    • 安装Mysql(Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using EditLine wrapper)
    • 安装Tomcat(apache-tomcat-7.0.50)
    • 安装Nginx(nginx/1.5.3)
    • 安装 zookeeeper (zookeeper-3.3.0)
    • 安装 Redis (2.4.5)

    准备配置

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

    /home/work/dsp/disconf-rd/online-resources
    

    如果不确定如何配置,可以拷贝/disconf-web/profile/rd/目录下的文件,拷贝过去后修改即可。

    配置文件包括:

    - jdbc-mysql.properties (数据库配置)
    - redis-config.properties (Redis配置,主要用于web登录使用)
    - zoo.properties (Zookeeper配置)
    - application.properties (应用配置)
    

    注意,记得执行将application-demo.properties复制成application.properties:

    cp application-demo.properties application.properties 
    

    注意,即使只有一个redis,也应该配置两个redis client,否则将造成内部错误。

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

    /home/work/dsp/disconf-rd/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
    

    这样会在 /home/work/dsp/disconf-rd/war 生成以下结果:

    -disconf-web.war  
    -html  
    -META-INF  
    -WEB-INF
    

    上线前的初始化工作

    初始化数据库:

    可以参考 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="/home/work/dsp/disconf-rd/war"></Context>
    

    并设置端口为 8015

    启动Tomcat,即可。

    部署 前端

    修改 nginx.conf

    upstream disconf {
        server 127.0.0.1:8015;
    }
    
    server {
    
        listen   8081;
        server_name disconf.com;
        access_log /home/work/var/logs/disconf/access.log;
        error_log /home/work/var/logs/disconf/error.log;
    
        location / {
            root /home/work/dsp/disconf-rd/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;
        }
    }
    

    相关文章

      网友评论

          本文标题:Disconf 配置文档

          本文链接:https://www.haomeiwen.com/subject/apndmftx.html