• 一、背景

在生产部署过程中,遇到以下问题:

1、由于节点较多,每次增量修改配置文件后都需要每个节点替换配置文件。

2、有些动态配置修改后,需要重启服务。

  • 二、解决方案

1、使用linux文件共享配置文件来实现,但是这个需要解决配置的权限分配问题,操作起来比较麻烦,并且无法解决问题2。

2、使用中间件来解决配置加载问题,由于我们服务已经使用了dubbo,所以最后采用了百度的disconf来实现动态配置加载。

  • 三、实现
  1. 安装依赖

安装Mysql

安装Tomcat(apache-tomcat-7)
安装Nginx(nginx/1.10.2)(安装nginx还需要安装openssl-fips-2.0.10、pcre-8.40、zlib-1.2.11)
安装 zookeeeper (zookeeper-3.5.2)
安装 Redis (2.6.10)

2、安装以上文件后,下载disconf

直接上去下载disconf源码,https://github.com/knightliao/disconf

新建disconf目录,并创建war、sql、src子目录,并将压缩包解压到src目录

3、初始化数据库。

进入disconf/sql目录,按照说明初始化数据脚本。

4、拷贝初始化文件

新建disconf/online-resource子目录将配置文件拷贝进去

5、修改配置并打包

进入下面目录修改配置文件:/home/www/soft/disconf/disconf-master/disconf-web/profile/rd

修改jdbc-mysql.properties

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.db_0.url=jdbc:mysql://172.18.50.11:3306/wanjiaweb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=false
jdbc.db_0.username=wanjiaweb
jdbc.db_0.password=web@123456 jdbc.maxPoolSize=20
jdbc.minPoolSize=10
jdbc.initialPoolSize=10
jdbc.idleConnectionTestPeriod=1200
jdbc.maxIdleTime=3600

修改zoo.properties

hosts=172.18.50.4:2181,172.18.50.6:2181,172.18.50.7:2181
# zookeeper\u7684\u524D\u7F00\u8DEF\u5F84\u540D
zookeeper_url_prefix=/disconf

修改redis-config.propertie

redis.group1.retry.times=2

redis.group1.client1.name=BeidouRedis1
redis.group1.client1.host=172.20.50.25
redis.group1.client1.port=6379
redis.group1.client1.timeout=5000
redis.group1.client1.password=foobared redis.group1.client2.name=BeidouRedis2
redis.group1.client2.host=127.0.0.1
redis.group1.client2.port=6380
redis.group1.client2.timeout=5000
redis.group1.client2.password=foobared redis.evictor.delayCheckSeconds=300
redis.evictor.checkPeriodSeconds=30
redis.evictor.failedTimesToBeTickOut=6

修改完成后执行
mvn package
命令

  •  四、部署disconf
  1. 第一步部署war

cd /usr/local/tomcat7/conf

vi server.xml 修改该配置

在Host节点下添加以下配置

<Context path="/" docBase="/home/www/soft/disconf/war/disconf-web.war" reloadable="false" crossContext="true" />

然后进入bin目录启动tomcat

  1.   第二步配置nginx

进入nginx配置目录/usr/local/nginx/conf

修改nginx.conf配置

http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on;
upstream disconf {
server 127.0.0.1:8990;
}
#keepalive_timeout 0;
keepalive_timeout 65; #gzip on; server {
listen 8992;
server_name 127.0.0.1;
access_log logs/disconf_access.log;
error_log logs/disconf_error.log; location / {
root /home/www/soft/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前端的端口

disconf使用前后端分离的部署方式,前端配置在nginx是那个,后端api部署在tomcat中

启动nginx。

  • 五、登陆并配置

访问http://172.20.50.26:8992/main.html

默认用户密码都是admin

登陆后进行操作,可以根据公司的环境进行配置,我将原有的rd、qa、local、online分别改成了dev、test、stg、product

disconf分布式配置管理(一) 安装与配置的更多相关文章

  1. Disconf 分布式配置管理平台(安装配置)

    Disconf 分布式配置管理平台(安装配置) 依赖环境 Nginx:处理静态资源请求.动态请求转发到Tomcat Tomcat:处理Nginx的请求 Redis:用户session管理 MySQL: ...

  2. 完全分布式Hadoop2.3安装与配置

    一.Hadoop基本介绍 Hadoop优点 1.高可靠性:Hadoop按位存储和处理数据 2.高扩展性:Hadoop是在计算机集群中完成计算任务,这个集群可以方便的扩展到几千台 3.高效性:Hadoo ...

  3. zabbix分布式监控服务 安装与配置

    zabbix安装与配置   一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...

  4. hadoop2.7.7 分布式集群安装与配置

    环境准备 服务器四台: 系统信息 角色 hostname IP地址 Centos7.4 Mster hadoop-master-001 10.0.15.100 Centos7.4 Slave hado ...

  5. 分布式管理系统-git安装及配置

    安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config - ...

  6. hadoop完全分布式模式的安装和配置

    本文是将三台电脑用路由器搭建本地局域网,系统为centos6.5,已经实验验证,搭建成功. 一.设置静态IP&修改主机名&关闭防火墙(all-root)(对三台电脑都需要进行操作) 0 ...

  7. 分布式文件系统FastDFS安装与配置(单机)

    安装包如下:fastdfs-nginx-module_v1.16.tar.gzFastDFS_v5.05.tar.gzlibfastcommon-master.zipnginx-1.8.0.tar.g ...

  8. 淘宝分布式配置管理服务Diamond

    转载:http://blog.csdn.net/kevinlynx/article/details/40017109 在一个分布式环境中,同类型的服务往往会部署很多实例.这些实例使用了一些配置,为了更 ...

  9. 分布式配置管理平台 - Disconf介绍

    原博客地址:http://blog.csdn.net/zhu_tianwei/article/details/47984545 Disconf专注于各种分布式系统配置管理的通用组件/通用平台,提供统一 ...

  10. 分布式配置管理平台 Disconf

    Distributed Configuration Management Platform(分布式配置管理平台) 专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务. 包括 ...

随机推荐

  1. 闲鱼面试:说说JWT工作原理?

    JWT(JSON Web Token)一种开放的标准规范(RFC 7519),用于在网络上安全的传输信息,通常被用于身份验证. 简单来说,你可以把 JWT 想象成一张小巧的.自包含的电子通行证.这张通 ...

  2. Typora行内公式识别不了

    Typora行内公式识别不了,主要是因为行内公式属于LaTeX扩展语法,并非Markdown的通用标准 需要在Typora的"文件"-"偏好设置"-" ...

  3. Linux 内核:设备驱动模型(4)uevent与热插拔

    Linux 内核:设备驱动模型(4)uevent与热插拔 背景 我们简单回顾一下Linux的设备驱动模型(Linux Device Driver Model,LDDM): 1.在<sysfs与k ...

  4. Linux 内核:设备驱动模型(3)class与device

    Linux 内核:设备驱动模型(3)class与device 背景 前面我们知道了设备如何通过总线与驱动匹配,也了解了设备插拔时与用户空间是如何通过uevent基于环境变量进行交互的. 前面看过了设备 ...

  5. 3568F-系统启动阶段LOGO显示

  6. 解决方案 | 将时间转换为毫秒bat

    @echo off setlocal enabledelayedexpansion rem 输入的时间 set "time_input=00:07:07.1" rem 解析时间 f ...

  7. [oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum

    python 历史 回忆上次内容 颜文字是kaomoji 把字符变成一种图画的方法 一层叠一层 很多好玩儿的kaomoji是一层层堆叠起来的meme   ​   添加图片注释,不超过 140 字(可选 ...

  8. TIER 1: Crocodile

    TIER 1: Crocodile nmap 在前几次练习中,我们已经熟悉 nmap 扫描,我们在本次靶机中使用继续使用 nmap 进行扫描. 扩充我们的知识库:-sC 选项启用了 Nmap 的默认脚 ...

  9. 学习笔记--Java 控制语句

    Java 控制语句 Java 控制语句 选择结构 if 语句 switch 语句 循环结构 for循环 while循环 do...while循环 循环控制 break 语句 continue 语句 选 ...

  10. SUM-ACM天梯赛

    第一次天梯赛: B-B:孵化小鸡 题解:二进制枚举所有可能性,一个一个枚举出来,@离散数学,真值表. 题目如下: 二进制枚举代码如下 点击查看代码 #include <bits/stdc++.h ...