别去搞什么yum安装了,很慢很慢,这是最新的源码地址 http://erlang.org/download/otp_src_19.3.tar.gz 建议迅雷或者其余工具先下载下来,而后用rz(没有安装的同窗能够yum install lrzsz -y)上传到服务器。
/* 安装依赖 */ yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
/* 编译安装 */ tar -xzvf otp_src_19.3.tar.gz cd ./otp_src_19.3 ./configure --prefix=/usr/erlang --without-javac make && make install
/* rabbitmq下载地址 */ https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.14-1.el7.noarch.rpm /* 导入 */ rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc /* 安装 */ yum install rabbitmq-server-3.6.14-1.el7.noarch.rpm /* 开启web管理界面 */ rabbitmq-plugins enable rabbitmq_management /* 开启15672 web端口 */ firewall-cmd --zone=public --add-port=15672/tcp --permanent firewall-cmd —reload /* 用户命令相应的命令 */ (1) 新增一个用户rabbitmqctl add_user Username Password (2) 删除一个用户rabbitmqctl delete_user Username (3) 修改用户的密码rabbitmqctl change_password Username Newpassword (4) 查看当前用户列表rabbitmqctl list_users /* 容许用户远程访问 */ rabbitmqctl set_permissions -p "/" User ".*" ".*" ".*" /* 设置用户角色的命令 */ rabbitmqctl set_user_tags User Tag User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其余自定义名称)。
建议将1节点虚拟机复制两份 这样能够保证rabbitmq cookie一致,不用作变动。而后再分别编辑三台节点的hosts文件,三台节点hosts文件一致。java
vi /etc/hosts /* 加入三个节点 */ 192.168.41.140 rabbitmq-node1.com rabbitmq-node1 192.168.41.141 rabbitmq-node2.com rabbitmq-node2 192.168.41.142 rabbitmq-node3.com rabbitmq-node3
重启三台服务器node
/* 分别以detached方式启动三台rabbitmq */ rabbitmq-server -detached // 若是提示PID FILE不能写入,能够关闭应用,直接以服务方式启动,关闭以后重启仍然提示有实例正在运行能够强制杀死线程 ps aux | grep rabbitmq kill -9 xxxx /* 启动服务 */ service rabbitmq-server start
让node二、node3加入集群linux
/* 将node2节点加入node1 做为RAM类型节点 */ rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@rabbitmq-node1 --ram rabbitmqctl start_app /* 将node3节点加入node1 做为disc类型节点 */ rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@rabbitmq-node1 rabbitmqctl start_app /* 查看集群信息 */ rabbitmqctl cluster_status
打开web管理界面查看,三台节点已经成功启动c++
安装HAProxy来代理三台节点web
/* haproxy下载连接 */ http://www.haproxy.org/download/1.7/src/haproxy-1.7.9.tar.gz
/* 根据平台选择编译参数 */ uname -r
/* 安装c/c++ */ yum install gcc gcc-c++ /* 笔者平台 */ 3.10.0-693.5.2.el7.x86_64 // 因此编译参数为 make TARGET=linux2628 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy /* 添加环境变量 */ vi /etc/profile export PATH=$PATH:/usr/local/haproxy/sbin source /etc/profile /* 复制bin文件,后续启动须要 */ cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
haproxy -v 后显示以下则表示成功 HA-Proxy version 1.7.9 2017/08/18 Copyright 2000-2017 Willy Tarreau <willy@haproxy.org>
/* 拷贝启动文件 */ cp examples/haproxy.init /etc/init.d/haproxy chmod 755 /etc/init.d/haproxy /* 建立系统帐号 */ groupadd haproxy useradd -g haproxy -M -s /sbin/nologin haproxy /* 建立配置文件 */ mkdir /etc/haproxy vi /etc/haproxy/haproxy.cfg ==== global #设置日志 log 127.0.0.1 local3 info chroot /usr/local/haproxy #用户与用户组 user haproxy group haproxy #守护进程启动 daemon #最大链接数 maxconn 4000 listen rabbitmq_local_cluster bind 0.0.0.0:5672 #配置TCP模式 mode tcp option tcplog #简单的轮询 balance roundrobin #rabbitmq集群节点配置 # inter 2000 健康检查时间间隔2秒 # rise 3 检测多少次才认为是正常的 # fall 3 失败多少次才认为是不可用的 # weight 30 权重 # 须要转发的ip及端口 server rabbitmq-node1 192.168.41.140:5672 check inter 2000 rise 3 fall 3 weight 30 server rabbitmq-node2 192.168.41.141:5672 check inter 2000 rise 3 fall 3 weight 30 server rabbitmq-node3 192.168.41.142:5672 check inter 2000 rise 3 fall 3 weight 30 #配置haproxy web监控,查看统计信息 listen private_monitoring bind :1080 mode http option httplog stats enable #设置haproxy监控地址为http://localhost:8100/stats stats uri /stats stats refresh 30s #添加用户名密码认证 stats auth admin:admin /* 编辑rsyslog */ vi /etc/rsyslog.conf // 去掉下面两行前的# $ModLoad imudp $UDPServerRun 514 // 添加下面一行保存 local3.* /var/log/haproxy.log // 重启rsyslog systemctl restart rsyslog
service haproxy start /* 开放1080端口 */ firewall-cmd --zone=public --add-port=1080/tcp --permanent firewall-cmd --reload
访问http://ip:1080/stats,输入帐号密码 admin admin 以下图服务器
这是配置信息 module.exports = Object.assign({ rabbitMq_host: '192.168.41.140', // 替换成haproxy的ip rabbitMq_port: '5672', // haproxy代理端口 rabbitMq_user: '***', // 这里替换成本身rabbitmq-server上的用户 rabbitMq_password: '*****', // 这里替换成本身rabbitmq-server上的密码 // server_host: '106.14.77.183', server_host: '127.0.0.1', server_port: 8889, rabbitMq_queue: { logic01: 'server', logic02: 'server_test' } });