Find file History
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
bin 支持修改密码 Jul 1, 2016
deploy re Sep 14, 2015
html re Aug 11, 2016
profile/rd re Sep 11, 2016
sql re Sep 6, 2016
src remove trans for update config value Nov 8, 2016
.gitignore .gitignore 增加 .idea的配置 Jul 22, 2015
README.md re Nov 7, 2016
pom.xml re Sep 11, 2016

README.md

disconf-web

分布式配置Web平台服务 模块

推荐使用最新的Chrome或Firefox浏览.

注:由于迭代开发快速多变的原因,当前UI可能与下图略有改变。

开放API

运行样式

主页

登录页

可以使用 admin admin 进行登录。

主界面

http://ww3.sinaimg.cn/mw1024/60c9620fgw1emxv1nw0u4j20qp0homy0.jpg

左上角可以选择APP和环境,选择之后,就会在中间出现若干个版本,

选择版本后,就会显示 APP、环境、版本 三个条件下的配置列表:

http://ww1.sinaimg.cn/mw1024/60c9620fgw1emyww39wjmj20qw0keq6m.jpg

####表格中 各个列的意义是:

  • APP:使用哪个APP,及它的ID
  • KEY:配置文件或配置项
  • 配置内容:配置文件或配置项在配置中心中的值
  • 实例列表:使用此配置文件或配置项的所有实例列表,及每个实例的配置值。如果实例的配置值与配置中心的值不一致,这里会标识出来。
  • 修改时间:修改此配置的最后一次时间
  • 操作:个性、删除、下载

####右上角可以

新建配置项、新建配置文件、新建APP

####表格右上方

可以批量下载所有配置文件至本地,还可以查看ZK上的部署情况。

How to deploy

###安装依赖软件###

  • 安装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配置)
- 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;
    }
}

关于host

这里的 host 设置成 disconf.com (可以自定义),但它 必须与 application.properties 里的domain一样。

然后浏览器的访问域名也是这个。

业务功能

  • 支持用户登录/登出
  • 浏览配置
    • 按 APP/版本/环境 选择
  • 修改配置
    • 修改配置项
    • 修改配置文件
  • 新建配置
    • 新建配置项
    • 新建配置文件
    • 新建APP

架构方案

Nginx(处理静态请求) + Tomcat(处理动态请求)

  • 后端
    • SpringMvc(3.1.2+)
    • Jdbc-Template
    • Mysql
    • RestFul API
    • Redis for user login/logout
    • H2内存数据库测试方案/Junit/SpringTest
  • 前端
    • HTML
    • Jquery(1.10.4):JS工具集合
    • Bootstrap(2.3.2):界面UI
    • Node(ejs/fs/eventproxy): 用于前端的HTML的模板化管理
  • 前后端接口(前后端分离)
    • 完全Ajax接口
    • JSON
    • RestFul API