Updated on 五月 23, 2018
分布式配置中心 Disconf实践- 安装篇
disconf 环境准备:
Nginx:处理静态资源请求、动态请求转发到Tomcat
Tomcat:处理Nginx的请求
Zookeeper:管理Disconf配置信息,配置变更通过zk通知
Redis:用户session管理
MySQL:应用管理、用户管理、角色管理、环境管理、配置持久化
Mavean:编译disconf源码打包;
一、下载DisConf :
wget https://codeload.github.com/knightliao/disconf/zip/master
将你的配置文件放到此地址目录下(以下地址可自行设定):
/opt/program/servers/disconfig/online-resources
拷贝/disconf-web/profile/rd/目录下的文件,拷贝过去后修改即可。
配置文件包括
cp application-demo.properties application.properties
注意,即使只有一个redis,也应该配置两个redis client,redis必须是主从模式,否则将造成内部错误。*
设置War包将要被部署的地址(以下地址可自行设定):
/opt/program/servers/disconfig/war
构建
ONLINE_CONFIG_PATH=/home/work/dsp/disconf-rd/online-resources
WAR_ROOT_PATH=/home/work/dsp/disconf-rd/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
cd disconf-web
sh deploy/deploy.sh
编译打包:
vi /etc/profile
ONLINE_CONFIG_PATH=/home/disconf/online-resources
WAR_ROOT_PATH=/home/disconf/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
source /etc/profile
cd disconf-web
sh deploy/deploy.sh
这样会在 /opt/program/servers/disconfig/war 生成以下结果:
还有其他的配置文件也都会在这个目录下
上线前的初始化工作
初始化数据库:
可以参考 sql/readme.md 来进行数据库的初始化。注意顺序执行
0-init_table.sql
1-init_data.sql
201512/20151225.sql
20160701/20160701.sql
里面默认有6个用户(请注意线上环境删除这些用户以避免潜在的安全问题)
name
pwd
admin
admin
testUser1
MhxzKhl9209
testUser2
MhxzKhl167
testUser3
MhxzKhl783
testUser4
MhxzKhl8758
testUser5
MhxzKhl112
如果想自己设置初始化的用户名信息,可以参考代码来自己生成用户:
src/main/java/com/baidu/disconf/web/tools/UserCreateTools.java
部署War
修改server.xml文件,在Host结点下设定Context:
并设置端口为 8015
启动Tomcat,即可。
一、安装Nginx :
1、Nginx官网下载源码包
下载稳定版本:nginx-1.12.0.tar.gz
2、安装到/usr/local/nginx
不懂Nginx 是可以看我之前的Nginx 系列文章:
3、修改监听端口:
修改 nginx.conf
upstream disconf {
server 127.0.0.1:8086;
}
server {
listen 1111;
server_name localhost;
access_log logs/disconf_access.log;
error_log logs/disconf_error.log;
location / {
root /opt/program/tools/disconfig/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;
}
}
二、安装Zookeeper
1、Zookeeper官网下载安装包
zookeeper-3.4.11.tar.gz
2、启动Zookeeper
cd zookeeper-3.4.11/bin
./zkServer start #ps aux | grep zoo验证进程是否起来
./zkCli.sh #zk客户端
不懂Zookeeper是可以看我之前的Zookeeper 系列文章:
三、安装Redis
1、下载Redis源码包,Redis官网2、解压安装
tar zxvf redis-3.2.9.tar.gz
cd redis-3.2.9
make
make install #安装后在/usr/local/bin会有redis的脚本
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
cd src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin ;
cp redis.conf /usr/local/redis/etc
3、启动
启动时并指定配置文件:./redis-server /usr/local/redis/etc/redis.conf(注意要使用后台启动,所以修改redis.conf里的 daemonize 改为yes)
验证启动是否成功:
ps -ef | grep redis 查看是否有redis服务 或者 查看端口:netstat -tunpl | grep 6379
4、配置主从
由于Disconf至少需要配置两台redis-client,所以我们可以在一台机器(本机)上安装master/slave模式的redis集群
cp /usr/local/redis/etc/redis.conf /usr/local/redis/etc/redis_6380.conf #redis2启动在6380端口
vi redis_6380.conf #配置slaveof 127.0.0.1 6379
5、设置主从的shardname
./redis-cli #redis_6379.conf
auth foobared
set name ‘BeidouRedis1’
./redis.cli #redis6380.conf
auth foobared
set name ‘BeidouRedis2’
不懂Redis是可以看我之前的Redis 系列文章:
四、安装MySQL
1、下载MySQL源码包,MySQL官网2、安装MySQL
自行百度;
3、导入disconf的sql脚本:上述有提过;
如果以上配置都OK的话,启动本地Tomcat,访问http://localhost:1111,默认账户admin/admin。
至此,全部安装结束,本地搭建Disconf成功,下一步就是让应用接入Disconf了!
编译好的Disconf安装包: 直接放入Tomcat就可运行;
Category: SOA服务化 Tags: Disconf