前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >disconf分布式配置管理(一) 安装与配置

disconf分布式配置管理(一) 安装与配置

作者头像
一笠风雨任生平
发布2019-08-02 11:03:08
1.3K0
发布2019-08-02 11:03:08
举报
文章被收录于专栏:服务化进程服务化进程
  • 一、背景

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

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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节点下添加以下配置

代码语言:javascript
复制
<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配置

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档