Disconf学习1_disconf 入门

Disconf(一)介绍与对比

一.官方:Distributed Configuration Management Platform(分布式配置管理平台) ;专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务,是一套完整的基于zookeeper的分布式配置统一解决方案

二.与Diamond的横向对比:disconf是来自百度的分布式配置管理平台,包括百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在使用!Diamond则是淘宝开源的一种分布式配置管理服务的实现


三.主要目标
部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线
部署动态化:更改配置,无需重新打包或重启,即可 实时生效
统一管理:提供web平台,统一管理 多个环境(RD/QA/PRODUCTION)、多个产品 的所有配置
支持微服务架构   
四.当前版本功能特点
支持配置(配置项+配置文件)的分布式化管理
配置发布统一化
配置发布、更新统一化(云端存储、发布):配置存储在云端系统,用户统一在平台上进行发布、更新配置。
配置更新自动化:用户在平台更新配置,使用该配置的系统会自动发现该情况,并应用新配置。特殊地,如果用户为此配置定义了回调函数类,则此函数类会被自动调用。
配置异构系统管理
异构包部署统一化:这里的异构系统是指一个系统部署多个实例时,由于配置不同,从而需要多个部署包(jar或war)的情况(下同)。使用Disconf后,异构系统的部署只需要一个部署包,不同实例的配置会自动分配。特别地,在业界大量使用部署虚拟化(如JPAAS系统,SAE,BAE)的情况下,同一个系统使用同一个部署包的情景会越来越多,Disconf可以很自然地与他天然契合。异构主备自动切换:如果一个异构系统存在主备机,主机发生挂机时,备机可以自动获取主机配置从而变成主机。
异构主备机Context共享工具:异构系统下,主备机切换时可能需要共享Context。可以使用Context共享工具来共享主备的Context。
注解式编程,极简的使用方式:我们追求的是极简的、用户编程体验良好的编程方式。通过简单的标注+极简单的代码撰写,即可完成复杂的配置分布式化。
需要Spring编程环境

五.模块架构图


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

环境配置
disconf运行需要如下软件:mysql、nginx、tomcat、zookeeper、redis,这个网上可以找到很多种安装配置的方法
clone disconf
disconf的代码在github上开源了,是一个很好的分布式配置管理平台,github上很多人fork了
下载至本地
cd work/github
git clone https://github.com/knightliao/disconf.git
修改环境变量
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
注意:disconf这个文件夹必须有写的权限
修改配置
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和端口
rabbit.properties
修改用户名和密码以及端口(自己安装的默认端口是5672)
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"/>
生成war包
cd disconf/disconf-web
sh deploy/deploy.sh
然后会发现war的内容会生成在/usr/local/xxx/disconf/war这个文件夹下
初始化数据库
如何初始化根据disconf-web下的sql文件夹下的README.md来初始化
tomcat配置
在tomcat的server.xml中加入
<Context path="" docBase="/usr/local/xxx/disconf/war"></Context>
nginx配置
在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中
启动
分别启动tomcat和nginx,打开浏览器:http://localhost:8991/
使用用户名admin和密码admin进入系统
至此disconf的web操作服务搭建完成
大概长成下面的样子,接下去需要了解如何使用该平台

参考:https://github.com/knightliao/disconf/wiki
--------------------- 
作者:fengfengxiaohei 
原文:https://blog.csdn.net/m0_37337849/article/details/78907873 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值