1. 程式人生 > 實用技巧 >RabbitMQ(五)叢集部署

RabbitMQ(五)叢集部署

一、安裝rabbitmq所需要的依賴包 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz 二、下載安裝包 erlang、socat、rabbitmq安裝最新版本 wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm 三、安裝服務 # 第一步 : 安裝 erlang 語言環境 rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm # 第二步 : 安裝 socat 加解密軟體 rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm # 第三步 : 最後安裝 rabbitmq rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
四、修改配置檔案 vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app 修改: loopback_users 中的 <<"guest">>, 只保留 guest (不修改只能通過localhost訪問) 五、修改本機系統檔案
  1. 修改 vim /etc/rabbitmq/rabbitmq-env.conf 新增 : NODENAME=rabbit
  2. 修改 vim /etc/hostname新增自定義主機名稱例如:yunji82
  3. 修改本地hosts檔案 vim /etc/hosts
    檔案 例如:172.16.0.82 yunji82
六、啟動單臺伺服器 進入到 /usr/local 目錄下 cd /usr/local 輸入 rabbitmqctl start_app 啟動外掛: rabbitmq-plugins enable rabbitmq_management 檢查埠 : lsof -i:5672 檢視程序 ps -ef|grep rabbitmq 訪問地址 :http://172.16.0.82:15672 第二臺83和第三臺84伺服器重複相同的步驟 選擇第一臺82作為主節點,同步82伺服器上的cookie到83和84。檔案目錄: /var/lib/rabbitmq/.erlang.cookie 七、啟用叢集 三臺機器上執行 rabbitmqctl stop rabbitmq-server -detached 83和84加入82的叢集 rabbitmqctl stop_app rabbitmqctl join_cluster [email protected] rabbitmqctl start_app 修改叢集名稱 : 82 上執行給命令 ( /usr/local) rabbitmqctl set_cluster_name rabbitmq_cluster_yunji 檢視叢集狀態 rabbitmqctl cluster_status 訪問管理後臺 八、配置映象佇列 在任意節點上執行 rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' 將所有佇列設定為映象佇列,即佇列會被複制到各個節點,各個節點狀態一致, RabbitMQ 高可用叢集就已經搭建好了 , 我們可以重啟服務,檢視其佇列是否在從 節點同步 剔除節點命令 rabbitmqctl forget_cluster_node [email protected] 點名稱 剔除節點 九、HAPROXY負載均衡 9.1安裝部署 1.下載依賴 yum install gcc vim wget 2.下載haproxy wget http://www . haproxy .org/download/1.6/src/haproxy-1.6.5.tar.gz 3.解壓 tar -zxvf haproxy-1.6.5.tar.gz -C /usr/local 4. 進入目錄、進行編譯、安裝 cd /usr/local/haproxy-1.6.5 make TARGET=linux31 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy 5. 建立 一個 haproxy 的目錄 用於存放 haproxy 的配置檔案 mkdir /etc/haproxy groupadd -r -g 149 haproxy useradd -g haproxy -r -s /sbin/nologin -u 149 haproxy 建立配置檔案 touch /etc/haproxy/haproxy.cfg haproxy.cfg 配置檔案詳解 #lgging options global log 127.0.0.1 local0 info maxconn 5120 chroot /usr/local/haproxy uid 99 gid 99 daemon quiet nbproc 20 pidfile /var/run/haproxy.pid defaults log global #使用4層代理模式,”mode http”為7層代理模式 mode tcp #if you set mode to tcp,then you nust change tcplog into httplog option tcplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5s##客戶端空閒超時時間為 60秒 則HA 發起重連機制 clitimeout 60s ##伺服器端連結超時時間為 15秒 則HA 發起重連機制 srvtimeout 15s #front-end IP for consumers and producters listen rabbitmq_cluster #監聽的埠 bind 0.0.0.0:5672 #配置TCP模式 mode tcp #簡單的輪詢 balance roundrobin ##===================================超級 超級 重要防止應用程式連線關閉=================================== timeout client 3h timeout server 3h #rabbitmq叢集節點配置 #inter 每隔五秒對mq叢集做健康檢查, 2次正確證明伺服器可用,2次失敗證明伺服器不可用,並且配置主備機制 server yunji82 172.16.0.82:5672 check inter 5000 rise 2 fall 2 server yunji83 172.16.0.83:5672 check inter 5000 rise 2 fall 2 server yunji84 172.16.0.84:5672 check inter 5000 rise 2 fall 2 #配置haproxy web監控,檢視統計資訊 listen stats bind 172.16.0.85:8100 mode http option httplog stats enable #設定haproxy監控地址為http://172.16.0.85:8100/rabbitmq-stats stats uri /rabbitmq-stats stats refresh 5s 啟動 haproxy /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg 檢視 haproxy 是否啟動 ? ps-ef|grep rabbitmq haparoxy 的監控臺訪問 http:// 172.16.0.85:8100 /rabbitmq-stats 關閉 haproxy 命令 killall haproxy