Disconf实践指南:安装篇
Disconf是百度开源出来的一款基于Zookeeper的分布式配置管理软件。目前很多公司都在使用,包括滴滴、百度、网易、顺丰等公司。通过简单的界面操作就可以动态修改配置属性,还是很方便的。使用Disconf后发现的一大好处是省却应用很多配置,而且配置可以自动load,实时生效。
Disconf优点总结如下:
部署简单:同一个上线包,无须改动配置,即可在多个环境中上线
部署动态化:更改配置,无需重新打包或重启,即可实时生效
统一管理:提供web平台,统一管理多个环境多个产品的所有配置
如果想直接了解如何使用Disconf,可直接阅读Disconf实践指南:使用篇,不过了解如何安装可以更深入了解Disconf的工作原理,同时方便以后代码的调试。
需要安装Nginx、Tomcat、Zookeeper、Redis和MySQL。
Nginx:处理静态资源请求、动态请求转发到Tomcat
Tomcat:处理Nginx的请求
Zookeeper:管理Disconf配置信息,配置变更通过zk通知
Redis:用户session管理
MySQL:应用管理、用户管理、角色管理、环境管理、配置持久化
一、安装Nginx
1、Nginx官网下载源码包
下载稳定版本:nginx-1.12.0.tar.gz
2、安装到/usr/local/nginx
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure –prefix=/usr/local/nginx –with-zlib=../zlib-1.2.11 –with-pcre=../pcre-8.39
make
sudo make install
3、修改监听端口
server {
listen 8091;
server_name localhost;
index index.html;
#charset koi8-r;
#access_log logs/disconf_access.log;
location / {
#root /Users/chubin/Applications/disconf-stable/disconf-web/html;
root /usr/local/disconf/war/html;
index index.html;
}
}
4、启动Nginx
cd /usr/local/nginx
启动
sudo sbin/nginx #ps aux | grep nginx或者访问localhost:8091
重启
sudo sbin/nginx -s reload
停止
sudo sbin/nginx -s stop
5、将disconf-stable/disconf-web/html复制到/usr/local/disconf/war/
6、修改Nginx代理配置和静态资源目录
upstream disconf {
server 127.0.0.1:8080; #tomcat服务器的地址
}
server {
listen 8091; #监听端口
server_name localhost;
index index.html;
location / {
root /usr/local/disconf/war/html; #静态资源目录
index index.html;
}
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;
}
}
二、安装Tomcat
1、Tomcat官网下载安装包
下载Tomcat 7.x以上的版本:apache-tomcat-8.5.15.tar.gz
2、安装到任意目录
/xxx/apache-tomcat-8.5.15
3、启动Tomcat
./catalina.sh start #访问浏览器localhost:8080
三、安装Zookeeper
1、Zookeeper官网下载安装包
zookeeper-3.4.10.tar.gz
2、启动Zookeeper
cd zookeeper-3.4.10/bin
./zkServer start #ps aux | grep zoo验证进程是否起来
./zkCli.sh #zk客户端
四、安装Redis
1、下载Redis源码包,Redis官网
2、解压安装
tar zxvf ../Downloads/redis-3.2.9.tar.gz
cd redis-3.2.9
make
make install #安装后在/usr/local/bin会有redis的脚本
cp redis.conf /etc
vi /etc/redis.conf ##将daemonize no改为daemonize yes
/usr/local/bin/redis-server /etc/redis.conf
ps aux | grep redis #如果启动成功会有redis的进程
3、配置主从
由于Disconf至少需要配置两台redis-client,所以我们可以在一台机器(本机)上安装master/slave模式的redis集群
cp /etc/redis.conf /etc/redis2.conf #redis2启动在6380端口
vi redis2.conf #配置slaveof 127.0.0.1 6379
sudo ./redis-server /etc/redis2.conf
ps aux | grep redis
4、设置主从的shardname
./redis-cli #redis.conf
auth foobared
set name ‘BeidouRedis1’
./redis.cli #redis2.conf
auth foobared
set name ‘BeidouRedis2’
五、安装MySQL
1、下载MySQL源码包,MySQL官网
2、安装MySQL
tar zxvf ../Downloads/mysql-5.7.18-macos10.12-x86_64.tar.gz
sudo mv mysql-5.7.18 /usr/local/mysql #移动MySQL到安装目录
sudo support-files/mysql.server start #启动MySQL
./mysqladmin -u root -p password 1234 #修改root用户初始密码
./mysql -u root -p 1234 #自带客户端连接MySQL
3、如果觉得麻烦,可以直接下载dmg安装文件,简单省事
4、导入disconf的sql脚本
- 0-init_table.sql #建库建表
- 1-init_data.sql #插入数据
- 201512/20151225.sql #历史配置表
5、最终数据库如下:
六、安装Disconf
1、下载Disconf源码包,Disconf-stable
disconf-stable
2、导入IDEA,运行Disconf
到disconf-web目录,将online-resources下的配置文件拷贝一份到src/main/resources下,包含的文件有:
application.properties #应用自身的配置文件
jdbc-mysql.properties #数据库配置
redis-config.properties #redis配置
zoo.properties #Zookeeper配置
如果以上配置都OK的话,在IDEA启动本地Tomcat,访问http://localhost:8091,默认账户admin/admin。
至此,全部安装结束,本地搭建Disconf成功,下一步就是让应用接入Disconf了。安装配置有任何问题欢迎评论O(∩_∩)O哈!
Disconf实践指南:安装篇的更多相关文章
- Disconf实践指南:使用篇
在上一篇文章Disconf实践指南:安装篇介绍了如何在本地搭建Disconf环境,下面我们介绍如何在项目中使用Disconf.由于某些功能特性对源码做了修改,所以在官方文档并没有提及. 环境基于mac ...
- Disconf实践指南:改造篇
上一篇文章Disconf实践指南:使用篇介绍了如何在项目中应用disconf,虽然实现了分布式配置的实时刷新,但是我们希望能够去除所有的配置文件,把配置都交给disconf管理,本地只需要实现配置监听 ...
- Nagios学习实践系列——基本安装篇
开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...
- 如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南
0x00 前言简述 SSL/TLS 简单说明 描述: 当下越来越多的网站管理员为企业站点或自己的站点进行了SSL/TLS配置, SSL/TLS 是一种简单易懂的技术,它很容易部署及运行,但要对其进行安 ...
- [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务
转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...
- Java工程师学习指南 完结篇
Java工程师学习指南 完结篇 先声明一点,文章里面不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦. 因为笔者还只是一名在校 ...
- Java工程师学习指南 初级篇
Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- [CoreOS 转载]CoreOS实践指南(二):架设CoreOS集群
转载:http://www.csdn.net/article/2015-01-04/2823399 摘要:CoreOS是一个采用了高度精简的系统内核及外围定制的操作系统.ThoughtWorks的软件 ...
随机推荐
- HAWQ + MADlib 玩转数据挖掘之(二)——矩阵
矩阵是Madlib中数据的基本格式,通常是二维的.在Madlib中,数组的概念与向量类似,数组通常是一维的,是矩阵的一种特殊形式. 一.矩阵表示 MADlib为矩阵提供了两种表示形式:稠密和稀疏. 1 ...
- NuGet 本地服务器 公司组件库搭建 上传下载操作 模块化灵活设计
新年第一更,关于如何搭建NuGet的本地服务器,以及部署IIS,以此搭建公司自己的组件仓库,方便所有的组件更新,管理,测试等等操作. 关于如何在NuGet中下载指定的组件,参考这篇文章:http:// ...
- 网络编程 socket编程 - Asyncsocke
简单的聊天程序:http://blog.csdn.net/chang6520/article/details/7967662 iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 c ...
- Git+GitHub+SaltStack
本文主要介绍日常工作中会经常使用到的一些工具软件. [ 01 ]SaltStack简明教程 [ 02 ]Git 中文教程 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Gi ...
- Git 过滤文件,控制上传
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则. 有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用 ...
- 程序设计入门-C语言基础知识-翁恺-第七周:指针与字符串-详细笔记(七)
目录 第七周:指针与字符串 7.1 指针初步 7.2 字符类型 7.3 字符串 7.3 课后练习 第七周:指针与字符串 7.1 指针初步 sizeof 是一个运算符,给出某个类型或变量在内存中所占据的 ...
- HDU2037 今年暑假不AC
解题思路:贪心问题,关键突破口是,先将节目的结束时间 从小到大排个序,然后依次判断后面一个节目的开始时间 是否大于或等于前一个符合条件的节目的结束时间.见代码: #include<cstdio& ...
- ios 延迟调用 && UIImageView && UILabel && UISegmentedControl && UISwitch && UISlider
// // ViewController.m // UI_Lesson3 // // Created by archerzz on 15/8/13. // Copyright (c) 2015 ...
- LOJ2325. 「清华集训 2017」小 Y 和恐怖的奴隶主【矩阵快速幂优化DP】【倍增优化】
LINK 思路 首先是考虑怎么设计dp的状态 发现奴隶主的顺序没有影响,只有生命和个数有影响,所以就可以把每个生命值的奴隶主有多少压缩成状态就可以了 然后发现无论是什么时候一个状态到另一个状态的转移都 ...
- BZOJ4128 Matrix 【BSGS】
BZOJ4128 Matrix Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * ...