別去搞什麼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' } });