RabitMQ的补偿机制部署对策
1 服务器及软件清单
|
应用服务器1 |
应用服务器2 |
应用服务器3 |
操作系统 |
Red Hat Enterprise Linux Server release 6.9 (Santiago)
|
Red Hat Enterprise Linux Server release 6.9 (Santiago)
|
Red Hat Enterprise Linux Server release 6.9 (Santiago)
|
数据库 |
-- |
|
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
Oracle服务器编码: SIMPLIFIED CHINESE_CHINA.ZHS16GBK |
JDK |
java version "1.8.0_131" |
java version "1.8.0_131" |
java version "1.8.0_131" |
应用中间件 |
WebLogic 12.1.3.0.0 Redis version:4.0.9 RabbitMQ version:3.6.2 |
WebLogic 12.1.3.0.0 Redis version:4.0.9 RabbitMQ version:3.6.2 |
|
IP |
10.28.40.223 |
10.28.83.61 |
10.28.40.222 |
2软件安装
各软件安装版本符合人行安全等级,原则上开源软件由公司平台部统一提供,实施前由部门SVN统一提取,进制实施人员个人下载,如有必要需和项目经理沟通确认。确认可使用后,必须将此版本带回部门统一维护。
2.1 JDK安装
2.1.1安装环境
- 操作系统:Red Hat Enterprise Linux Server release 6.6 (Santiago)。
- JDK版本:jdk-6u45-linux-x64.bin。
2.1.2安装过程
1.切换到jdk-6u45-linux-x64.bin文件所在目录。
2. 执行如下命令:
Chmod+x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
安装软件会将JDK自动安装到 /usr/java/目录下。
2.1.3环境配置
#vi /etc/profile
在里面添加如下内容:
export JAVA_HOME=/usr/java/jdk1.6.0_45
export JAVA_BIN=/usr/java/jdk1.6.0_45/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
# . /etc/profile
注意: . 和 /etc/profile 有空格
2.1.4验证测试
运行命令:java –version
输出如下:
2.2 redis安装
2.2.1安装环境
1.安装版本:redis-3.2.2.tar.gz
2.2.2 安装步骤
1.安装编译命令:
在root用户下执行:
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
2.上传安装包到服务器
以下均在普通用户下执行,且普通用户必须拥有此文件夹读写权限
将安装包上传至/home/weblogic/soft
3.解压安装包:
依次执行以下命令:
cd /home/weblogic/soft
tar -xzvf redis-4.0.9.tar.gz
4.编译
依次执行以下命令:
cd redis-4.0.9
make
cd src
make install PREFIX=/home/weblogic/redis
5.移动配置文件到安装目录下
依次执行以下命令:
cd ../
mkdir /home/weblogic/redis/etc
mv redis.conf /home/weblogic/redis/etc
mv sentinel.conf /home/weblogic/redis/etc
6.修改redis配置文件
依次执行以下命令:
mkdir /home/weblogic/redis/pid
mkdir /home/weblogic/redis/logs
vi /home/weblogic/redis/etc/redis.conf
将daemonize no 改成daemonize yes(后台启动)
bind 127.0.0.1 改为 bind 0.0.0.0
protected-mode no 改为protected-mode yes
pidfile "/var/lib/redis_6379.pid" 改为
pidfile "/home/weblogic/redis/pid/redis_6379.pid"
logfile “”改为 logfile “home/weblogic/redis/logs/redis.log”
7.将redis加入到开机启动
在root账户下执行
vi /etc/rc.local
在文件末尾添加以下内容:
su - weblogic -lc “/home/weblogic/redis/bin/redis-server /home/weblogic/redis/etc/redis.conf”
8.开启redis
/home/weblogic/redis/bin/redis-server /home/weblogic/redis/etc/redis.conf
2.2.3主从配置
1.修改redis.conf配置文件
vi /home/weblogic/redis /etc/redis.conf
从配置文件修改如下:(无则添加)
添加 slaveof 主服务器IP 主服务器端口号
例:slaveof 10.28.121.109 6379
2.重启主从服务器的redis
/home/weblogic/redis/bin/redis-cli shutdown 停止
/home/weblogic/redis/bin/redis-server /home/weblogic/redis/etc/redis.conf 启动
2.2.4哨兵配置
1.修改sentinel.conf配置文件
vi /u sr/local/redis/etc/redis.conf
配置文件修改如下:(集群中所有服务器相同配置)
注释掉bind 127.0.0.1
添加daemonize yes
添加 protected-mode no
添加sentinel monitor mymaster 主服务IP 主服务端口 故障转移票数
例:sentinel monitor mymaster 10.28.121.109 6379 1
2.2.5验证测试
主从验证
在主服务器存值
在从服务器取值(如果能获取到相应的值说明主从配置成功)
哨兵验证:
/usr/local/redis/bin/redis-cli -p 26379
info sentinel
2.3 rabbit mq安装
2.3.1安装环境
Rabbit mq软件版本:
Erlang软件版本:
2.3.2安装Erlang
- 上传安装包到服务器
将安装包上传至/home/weblogic/soft
- 解压安装包
依次执行以下命令:
cd /home/weblogic/soft
tar -xzvf otp_src_18.3.tar.gz
- 编译安装
cd otp_src_18.3/
./configure --prefix=/home/weblogic/erlang
make && make install
cd /home/weblogic/erlang
ll
- 配置Erlang环境变量
在root账户下执行
vi /etc/profile
增加下面的环境变量:
export PATH=$PATH: /home/weblogic/erlang/bin
使得文件生效 source /etc/profile
- 验证erlang是否安装成功:
erl
Halt() .退出(不要忘记后面的点)
2.3.3安装rabbit MQ
- 上传安装包
将安装包上传至/home/weblogic/soft
- 解压安装包
依次执行以下命令:
cd /home/weblogic/soft
xz -d rabbitmq-server-generic-unix-3.6.2.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.6.2.tar
mv rabbitmq_server-3.6.2/ ../
- 进入sbin 启动服务:./rabbitmq-server -detached
- 配置网页插件
启用插件:./rabbitmq-plugins enable rabbitmq_management
新增用户: ./rabbitmqctl add_user root root
- 赋予管理员权限
./rabbitmqctl set_user_tags root administrator
./rabbitmqctl set_permissions -p "/" root ".*" ".*" ".*"
设置开机启动
在root用户下编辑:
vi /etc/rc.local
在文件末尾添加以下内容:
su - weblogic -lc "/home/weblogic/rabbitmq_server-3.6.2/sbin/rabbitmq-server -detached"
- 至此rabbitmq安装完成
2.3.4 Rabbitmq集群配置
编辑各个服务器的hosts文件,配置以上内容
vi /etc/hosts
加入以下内容:
集群内所有的 ip hostname
例:
10.28.121.109 zrc121109
10.28.121.108 zrc121108
....
- 配置erlang.cookie
集群中的所有服务器的 .erlang.cookie必须一致
例:
以10.28.121.109为准
将.erlang.cookie复制到其他服务器
- 将所有节点加入集群中
启动集群内所有服务器
./rabbitmq-server -detached
添加节点:
所有服务器命令一样:
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@zrc121109
./rabbitmqctl start_app
查看集群节点
./rabbitmqctl cluster_status
3.加入镜像策略
在集群中随意一台服务器输入以下命令:
./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
1.1.1 验证测试
自测
2.4 nginx安装
- 上传nginx-1.16.1.tar.gz安装包到/home/weblogic/soft
2.解压安装包
tar -xzvf nginx-1.16.1.tar.gz
3.切换至root账户
yum -y install pcre-devel
4.切换至普通用户
cd nginx-1.16.1/
./configure --prefix=/home/weblogic/nginx
make && make install
- 将nginx.conf上传至/home/weblogic/nginx目录下
3. 替换/home/weblogic/nginx/config/nginx.conf文件
Mv /home/weblogic/nginx/nginx.conf /home/weblogic/nginx/conf/nginx.conf
4.启动nginx
/home/weblogic/nginx/sbin/nginx -c /home/weblogic/nginx/conf/nginx.conf”
配置开机启动
切换至root账户
Vi /etc/rc.local
在最后加入
su - webLogic -lc “/home/weblogic/nginx/sbin/nginx -c /home/weblogic/nginx/conf/nginx.conf”
”
3数据库脚本执行
3.1创建用户
Create user credit identified by credit;
Grant dba to credit;
3.2表空间列表
表空间创建在默认的数据库磁盘空间上,表空间列表:
表空间名 |
说明 |
C_PLAT_TABS |
平台 |
P_QUERY_TABS |
个人查询 |
E_QUERY_TABS |
企业查询 |
P_ANALYSIS_TABS |
个人解析 |
E_ANALYSIS_TABS |
企业解析 |
创建表空间语句:
select * from Dba_Data_Files;--查看表空间所在位置
create tablespace C_PLAT_TABS --表空间名
logging
datafile 'C:\Users\Administrator\Desktop\class\C_PLAT_TABS.DBF'
size 50m
autoextend on --自动扩展
next 50m maxsize 20480m
extent management local;
4系统部署
4.1应用包配置修改
4.1.1 amqp.properties文件
v 文件文件路径:creditenterprisequeryweb.war\WEB-INF\classes
v 单机部署:
v
参数 |
参数说明 |
修改后 |
amqp.deployMode |
集群模式 |
1 |
amqp.host |
MQ主机地址 |
10.28.110.141 |
amqp.port |
MQ端口 |
5672 |
amqp.username |
MQ用户名 |
root |
amqp.password |
MQ密码 |
root |
v 集群部署:
参数 |
参数说明 |
修改后 |
amqp.deployMode |
集群模式 |
2 |
amqp.addresses |
MQ主机地址 |
10.28.40.223,10.28.83.61 |
amqp.port |
MQ端口 |
5672 |
amqp.username |
MQ用户名 |
root |
amqp.password |
MQ密码 |
root |
|
|
|
4.1.2 redis.properties文件
v 文件文件路径:creditenterprisequeryweb.war\WEB-INF\classes
v 单机部署:
参数 |
参数说明 |
修改后 |
redis.deploymodel |
集群模式 |
2 |
redis.host |
redis主机地址 |
10.28.110.141 |
v 集群部署(哨兵):
参数 |
参数说明 |
修改后 |
redis.deploymodel |
集群模式 |
3 |
redis.host |
redis主机地址 |
10.28.40.223 |
Redis.host2 |
Redis从机地址 |
10.28.83.61 |
4.2步骤
- 将修改后的配置文件替换到creditenterprisequeryweb.war\WEB-INF\classes目录下.
- 将war包上传至服务器部署目录下.
说明:其他应用包类似配置
5日志管理
5.1应用包启动脚本
新建start.sh增加以下内容:
#!/bin/sh
#日志文件
base_dir=$(pwd)
echo $base_dir
#java_options
export JAVA_OPTIONS="-Dfile.encoding=UTF-8"
#nohup 重定向输出日志
nohup $base_dir/startWebLogic.sh > /dev/null 2>&1 &
5.2日志清单
应用 |
日志地址 |
平台包 |
/weblogic/files/logs/223/creditplatformweb/ |
个人查询 |
/weblogic/files/logs/223/creditpersonqueryweb/ |
企业查询 |
/weblogic/files/logs/223/creditenterprisequeryweb/ |
个人解析 |
/weblogic/files/logs/223/ent-asyncMqStorageService/ |
企业解析 |
/weblogic/files/logs/223/person-asyncMqStorageService/ |
5.3目录清单
文件类型 |
文件地址 |
保存文件使用的工作目录 |
/weblogic/files/queryFiles/ |
保存文件使用的临时目录 |
/weblogic/files/queryFiles/tmp |
批量查询文件存放路径(个人) |
/weblogic/files/queryFiles/perbatchquery |
批量查询文件存放路径(企业) |
/weblogic/files/queryFiles/entbatchquery |
挡板报告路径 |
/weblogic/files/queryFiles/pdam |