- 一、背景
在生产部署过程中,遇到以下问题:
1、由于节点较多,每次增量修改配置文件后都需要每个节点替换配置文件。
2、有些动态配置修改后,需要重启服务。
- 二、解决方案
1、使用linux文件共享配置文件来实现,但是这个需要解决配置的权限分配问题,操作起来比较麻烦,并且无法解决问题2。
2、使用中间件来解决配置加载问题,由于我们服务已经使用了dubbo,所以最后采用了百度的disconf来实现动态配置加载。
- 三、实现
- 安装依赖
安装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
- 第一步部署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
- 第二步配置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分布式配置管理平台提供了全面的配置管理解决方案,适用于各种规模和类型的分布式系统。通过理解和运用Disconf,开发者可以更好地应对复杂分布式环境下的配置管理挑战,提高系统的灵活性和可维护性...
Disconf 是一款分布式配置管理系统,旨在帮助开发者更方便地管理和维护项目中的配置文件。在本教程中,我们将详细介绍 Disconf 的使用方法和配置项。 1. Disconf 客户端录入/修改/删除项目配置相关内容 Disconf 的...
为您提供Disconf分布式配置管理平台下载,Disconf(Distributed Configuration Management Platform)分布式配置管理平台,专注于为各种「分布式系统配置管理」的「通用组件」和「通用平台」提供统一的「配置管理...
本项目是一个基于Spring Boot框架和Disconf的分布式配置管理系统。Disconf是一个专注于分布式系统配置管理的通用组件和平台,提供统一的配置管理服务。通过本系统,用户可以轻松管理多个环境、多个产品的配置,实现...
Disconf(Distributed Configuration Management Platform)分布式配置管理平台,专注于为各种「分布式系统配置管理」的「通用组件」和「通用平台」提供统一的「配置管理服务」。包括百度、滴滴出行、银联、网易、...
`disconf`( Distributed Configuration System)就是这样一个用于Java环境的开源分布式配置管理工具。`disconf-demo`是基于`disconf`的一个示例项目,旨在帮助开发者更好地理解和使用`disconf`。 `disconf`的核心...
分布式配置中心 Disconf 编译好的安装包, 分布式配置中心 Disconf 编译好的安装包,。
分布式配置管理系统(Disconf)是一个专注于各种分布式系统配置管理的通用组件和通用平台,提供统一的配置管理服务。Disconf旨在简化分布式系统的配置管理,确保配置的统一管理和动态更新。 ## 项目的主要特性和...
Disconf(分布式配置中心)是百度开源的一款用于解决分布式系统配置管理问题的工具,它可以集中化管理应用的配置,使得在分布式环境下配置的修改和更新变得更加便捷。在本压缩包中,包含了`disconf-web.war`文件,这...
Spring Cloud Config是Spring Cloud全家桶中的一个组件,它主要用于实现分布式系统中的配置管理。在微服务架构下,系统通常被拆分成许多个小的微服务,每个服务都有自己的配置文件。当配置文件频繁更改或不同服务...
其次,disconf(分布式配置中心)是百度开源的一款用于解决分布式系统配置管理问题的工具。它可以集中存储、管理所有服务的配置,支持配置的实时推送,使得服务在不重启的情况下就能感知到配置的变化。这对于大型...
Disconf,全称为 Distributed Configuration,是一个开源的、基于Java的分布式配置中心,它致力于解决分布式环境下配置统一管理的问题,让开发者可以更加专注于业务开发,而无需担心配置的分散与同步问题。...
4. **Disconf(分布式配置中心)**:Disconf是由百度开源的一个分布式配置管理工具,它可以帮助开发者集中管理分布式系统中的配置,简化配置的更新和同步过程。在Wish项目中,Disconf作为配置中心,可以方便地对各个...
综上所述,Disconf作为一款优秀的分布式配置中心,通过集中式的配置管理,为开发者提供了便利,降低了运维复杂度,提升了系统的整体性能。对于需要处理大量配置的服务来说,Disconf是一个值得考虑的解决方案。
Disconf,全称为 Distributed Configuration,是一款由百度开源的分布式配置中心,它能够有效地解决分布式环境中配置管理的难题。本篇文章将深入探讨Disconf的使用,包括如何使用`disconf.properties`文件以及不使用...
disconf,全称是Distributed Configuration Service,是一款开源的分布式配置管理工具,由百度公司推出,旨在解决在分布式环境下配置管理的难题。它提供了一种集中式的、版本化的、动态更新的方式来管理和分发应用的...
Platform(分布式配置管理平台) 专注于各种「分布式系统配置管理」的「通用组件」和「通用平台」, 提供统一的「配置管理服务」 包括 百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在...
Disconf(分布式配置中心)是一款开源的、轻量级的、适用于Java环境的分布式配置管理工具,它能有效地帮助开发者解决在分布式系统中配置管理的难题。这份V1.3版本的指南将详细介绍如何正确、高效地部署和使用disconf...
Disconf则是百度开源的一款分布式配置管理工具,同样具备配置管理的核心功能。Disconf的特点包括: 1. **全面覆盖**:Disconf不仅支持常规的配置管理,还涵盖了Spring、MyBatis等框架的配置,以及Zookeeper、Redis...
"Disconf-web" 是一款专为分布式系统配置管理而设计的开源工具,其主要目标是提供一个统一、便捷的配置管理平台。在官方下载的版本中,通常需要借助Nginx进行动静态资源的分离,以优化服务器性能。然而,对于一些...