- 一、背景
在生产部署过程中,遇到以下问题:
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分布式配置管理平台 v2.6.36.zip
Disconf 分布式配置使用教程
为您提供Disconf分布式配置管理平台下载,Disconf(Distributed Configuration Management Platform)分布式配置管理平台,专注于为各种「分布式系统配置管理」的「通用组件」和「通用平台」提供统一的「配置管理...
Disconf(Distributed Configuration Management Platform)分布式配置管理平台,专注于为各种「分布式系统配置管理」的「通用组件」和「通用平台」提供统一的「配置管理服务」。包括百度、滴滴出行、银联、网易、...
disconf分布式配置demo
分布式配置中心 Disconf 编译好的安装包, 分布式配置中心 Disconf 编译好的安装包,。
Platform(分布式配置管理平台) 专注于各种「分布式系统配置管理」的「通用组件」和「通用平台」, 提供统一的「配置管理服务」 包括 百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在...
分布式架构Wish脚手架项目,mybatis据库读写分离,disconf配置中心等-Wish
Tips: 可以参考 “配置管理服务,如disconf diamond等” 的概念来帮助我们来认识和理解XXL-GLUE。前者用于维护分布式环境下的 "配置信息", 并推送配置更新; 后者功能更强大, 支持维护 "Java逻辑代码块(基本单元是...
修改其中 jdbc-mysql.properties (数据库配置), redis-config.properties (Redis配置),zoo.properties (Zookeeper配置), application.properties (应用配置)配置,然后启动即可。新建disconf数据库,然后依次...
这个文档描述的是,apollo和disconf对比,有需要的朋友可以看看
Distributed Configuration Management Platform(分布式配置管理平台) ;专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务,是一套完整的基于zookeeper的分布式配置统一解决方案
百度开源的分布式管理工具,但是下载之后是前后端分离的,不太方便使用,调整成非前后端分离的程序
Platform(分布式配置管理平台) 专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务。 包括 百度、滴滴打车、银联、网易、拉勾网 等知名互联网公司正在使用! 主要目标: 部署极其简单:同一...
zookeeper是什么分布式数据一致性的解决方案zookeeper能做什么数据的发布/订阅(配置中心:disconf) 、 负载均衡(dubbo利用了zook
Disconf(百度分布式配置),Nginx(LB负载均衡),Shiro(轻量级权限框架),SSO(单点登录),Solr(搜索引擎),文件存储(百度BOS,七牛云),邮件(邮件),短信(短信),Maven Nexus(Maven私服),Docker...
Dubbo管理中心及及监控平台安装部署 Dubbo分布式服务模块划分(领域驱动) 基于Dubbo的分布式系统架构实战 Dubbo负载均衡策略分析 Dubbo服务调试之服务只订阅及服务只注册配置 Dubbo服务接口的设计原则(实战...
spring-dubbo-service微服务一,服务模块1,服务器配置:servlet,侦听器,拦截器,过滤器,aop,定时任务mybatis配置集成,多数据源;级联查询一对一对一对多注解配置及xml配置方式;分页处理:传递Page参数或继承...
统一配置管理 lua脚本实现分布式锁; 缓存应用(连接池,切片连接池,哨兵模式) 备注:哨兵,分片,最大化 哨兵模式集群(一主多从):每个节点拥有所有数据,内存限制 | 改进(解决内存问题) | 分片多主多从:...
笔者的微服务项目中需要使用一个统一的管理分布式系统的配置中心,之前试用过。实际使用发现,Disconf可以很好地满足项目的需求,同时提供了一个友好的图形化界面供操作。但是,其服务器端使用了Nginx, Tomcat, ...