rabbitmq+haproxy+keepalived實現高可用叢集搭建
專案需要搭建rabbitmq的高可用叢集,最近在學習搭建過程,在這裡記錄下可以跟大家一起互相交流(這裡只是記錄了學習之後自己的搭建過程,許多原理的東西沒有細說)。
搭建環境
CentOS7 64位
RabbitMQ 3.6.2
Keepalived 1.2.21
主機:192.168.0.1 192.168.0.2 192.168.0.3 三臺節點上安裝rabbitmq服務
Haproxy 安裝在 192.168.1.1 和 192.168.1.2 上,用於對外提供 RabbitMQ 均衡
Keepalived實現haproxy的主備,高可用(避免單點問題),192.168.1.1(主)192.168.1.2(備)
全域性圖如下:
RabbitMQ叢集搭建
單機上安裝
分別在192.168.0.1 192.168.0.2 192.168.0.3 節點上安裝rabbitmq server。
- 1.Install Erlang
# yum install erlang
測試erlang是否安裝成功,輸入:
# erl //進入erl視窗則表示安裝成功
- 2.Install RabbitMQ Server
# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.2/rabbitmq-server-3.6.2-1.noarch.rpm
# yum install rabbitmq-server-3.6.2-1.noarch.rpm
- 3.啟動
# /etc/init.d/rabbitmq-server start
- 4.開機啟動
# chkconfig rabbitmq-server on
測試是否安裝成功:
# rabbitmqctl status //檢視rabbitmq的執行狀態資訊
- 5.啟用外掛rabbitmq management
# rabbitmq-plugins enable rabbitmq_management
# /etc/init.d/rabbitmq-server restart
輸入http://ip:15672可以登入管理介面,預設賬戶guest/guest只能使用http://localhost:15672登入,要想遠端登入,需要新增一個新的使用者:
# rabbitmqctl add_user admin 1234
#使用者設定為administrator才能遠端訪問
$ sudo rabbitmqctl set_user_tags admin administrator
$ sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" //該命令使使用者admin具有‘/’這個virtual host中所有資源的配置、寫、讀許可權以便管理其中的資源
檢視所有使用者#rabbitmqctl list_users
映象叢集搭建
將192.168.0.1上的/var/lib/rabbitmq/.erlang.cookie中的內容複製到158和159上的/var/lib/rabbitmq/.erlang.cookie檔案中, 即三臺伺服器必須具有相同的cookie,如果不相同的話,無法搭建叢集
192.168.0.2和192.168.0.3節點上分別執行命令,加入到叢集
# rabbitmqctl stop_app
# rabbitmqctl join_cluster --ram [email protected]
# rabbitmqctl start_app
其中--ram代表是記憶體節點,如果希望是磁碟節點則不用加--ram,在rabbitmq叢集中,至少需要一個磁碟節點
檢視叢集的狀態
# rabbitmqctl cluster_status
設定成映象佇列
# rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}' //意思表示以ha.開頭的queue都會複製到各個節點 ["^"匹配所有]
Haproxy負載代理
利用haproxy做負載均衡
在192.168.1.1和192.168.1.2節點上
安裝haproxy
# yum install haproxy
vi /etc/haproxy/haproxy.cfg 之後新增:
listen rabbitmq_local_cluster 0.0.0.0:5672 #配置TCP模式 mode tcp option tcplog #簡單的輪詢 balance roundrobin #rabbitmq叢集節點配置 server rabbit1 192.168.0.1:5672 check inter 5000 rise 2 fall 2 server rabbit2 192.168.0.2:5672 check inter 5000 rise 2 fall 2 server rabbit3 192.168.0.3:5672 check inter 5000 rise 2 fall 2 #配置haproxy web監控,檢視統計資訊 listen private_monitoring :8100 mode http option httplog stats enable #設定haproxy監控地址為http://localhost:8100/stats stats uri /stats stats refresh 30s #新增使用者名稱密碼認證 stats auth admin:1234
#啟動
# haproxy -f haproxy.cfg
#重啟動
# service haproxy restart
Keepalived安裝
利用keepalived做主備,避免單點問題,實現高可用
在192.168.1.1和192.168.1.2節點上安裝最新版keepalived
192.168.1.1(主)修改keepalived.conf為:Primary配置:
vrrp_script chk_haproxy { script "pidof haproxy" interval 2 } vrrp_instance VI_1 { interface ens192 state MASTER priority 200 virtual_router_id 10 unicast_src_ip 192.168.1.1 unicast_peer { 192.168.1.2 } authentication { auth_type PASS auth_pass password } virtual_ipaddress { 192.168.1.10 //虛擬ip,對外提供服務 } track_script { chk_haproxy } notify_master /loadbtify_master.sh }
192.168.1.2(備)修改keepalived.conf為:Secondary配置:
vrrp_script chk_haproxy { script "pidof haproxy" interval 2 } vrrp_instance VI_1 { interface ens192 state BACKUP priority 100 virtual_router_id 10 unicast_src_ip 192.168.1.2 unicast_peer { 192.168.1.1 } authentication { auth_type PASS auth_pass password } virtual_ipaddress { 192.168.1.10 } track_script { chk_haproxy } notify_master /loadbtify_master.sh }
啟動keepalived即可,192.168.1.10是對外提供的統一地址。
通過192.168.1.10:5672就可以訪問rabbitmq服務。
參考資料:
https://www.digitalocean.com/community/tutorials/how-to-set-up-highly-available-haproxy-servers-with-keepalived-and-floating-ips-on-ubuntu-14-04#userconsent#
http://www.rabbitmq.com/install-rpm.html
http://www.keepalived.org/download.html //keepalived下載地址
相關推薦
rabbitmq+haproxy+keepalived實現高可用叢集搭建
專案需要搭建rabbitmq的高可用叢集,最近在學習搭建過程,在這裡記錄下可以跟大家一起互相交流(這裡只是記錄了學習之後自己的搭建過程,許多原理的東西沒有細說)。 搭建環境 CentOS7 64位 RabbitMQ 3.6.2 Keepalived 1.2.21 主機:192.1
CentOS7 haproxy+keepalived實現高可用叢集搭建
一、搭建環境 CentOS7 64位 Keepalived 1.3.5 Haproxy 1.5.18 後端負載主機:192.168.166.21 192.168.166.22 兩臺節點上安裝rabbitmq服務
Mycat+Mysql主從複製+haproxy+keepalived實現高可用的分庫分表叢集方案
一, 部署架構 1.1架構圖 1.2 軟體版本 作業系統: CentOS2-7-X86_64-DVD-1708.iso JDK 版本: jdk1.8.0_11 Keepalived 版本: keepalived-1.2.18.tar.gz
HAproxy+Keepalived實現高可用
daemon type tom com rontab date redis start virt HAproxy+Keepalived實現高可用 說明: HA1:HAproxy+Keepalived(master) HA2:HAproxy+Keepalived(back
LVS健康檢查及keepalived實現高可用叢集
LVS健康檢查 我們前面做的那些LVS的各種模式部署,都沒有健康檢查這一功能,就是說在我們搭建的負載均衡叢集中,如果後端伺服器RS全部宕掉了,客戶端就無法訪問到服務端的資料,這時我們應該給客戶端一些提示,說明伺服器暫時無法訪問。 配置(搭建好LVS-DR模式負載均衡的前提下) 在
LVS+Keepalived 實現高可用負載均衡叢集
LVS+Keepalived 實現高可用負載均衡叢集 隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可
叢集介紹、keepalived介紹、用keepalived配置高可用叢集、負載均衡叢集介紹、LVS介紹 、LVS排程演算法、LVS NAT模式搭建
一、叢集介紹 Linux叢集根據功能劃分為兩大類:高可用和負載均衡。 高可用叢集 高可用叢集通常為2臺伺服器,一臺工作,另一臺作為冗餘,當提供服務的機器宕機時,冗餘將接替繼續提供服務。 實現高可用的開源軟體有:heartbeat、Keepalived,其中hea
RabbitMQ 高階指南:從配置、使用到高可用叢集搭建
博主說:在專案中,通過 RabbitMQ,咱們可以將一些無需即時返回且耗時的操作提取出來,進行非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。 正文 1 RabbitMQ 簡介 1.1 介紹 RabbitMQ
RabbitMQ 高可用叢集搭建及電商平臺使用經驗總結
面向EDA(事件驅動架構)的方式來設計你的訊息 AMQP routing key的設計 RabbitMQ cluster搭建 Mirror queue policy設定 兩個不錯的RabbitMQ plugin 大型應用外掛(Sharding、Rederation) Queue映象失敗手動同步
haproxy對mysql主主複製的負載均衡中配keepalived實現高可用
突破單點故障限制,實現熱備防止宕機 在主主複製的基礎和負載均衡的基礎之上用keepalived實現熱備 keepalived 提供一個vip 虛擬的ip,並監測haproxy1和haproxy2的執行情況,讓這個vip在兩者間進行搶佔(機制有預設,有優先,有宕機後另一個自動獲取) keep
Linux叢集、Keepalived—Nginx高可用叢集架構搭建
叢集介紹Linux叢集根據功能劃分為兩大類:高可用和負載均衡。高可用叢集高可用叢集通常為2臺伺服器,一臺工作,另一臺作為冗餘,當提供服務的機器宕機時,冗餘將接替繼續提供服務。實現高可用的開源軟體有:heartbeat、Keepalived,其中heartbeat已無人維護,所
Keepalived+Tengine實現高可用叢集
概述 近年來隨著Nginx在國內的發展潮流,越來越多的網際網路公司使用Nginx;憑Nginx的高效能、穩定性等成為了眾多IT者青睞的WEB反向代理伺服器;但是Nginx雖然有很強大的代理功能,只有一臺Nginx伺服器難免不會出現問題,這就形成了單點故障的問題,而恰好可
.Net Core2.1 秒殺專案一步步實現CI/CD(Centos7.2)系列一:k8s高可用叢集搭建總結以及部署API到k8s
前言:本系列部落格又更新了,是博主研究很長時間,親自動手實踐過後的心得,k8s叢集是購買了5臺阿里雲伺服器部署的,這個叢集差不多搞了一週時間,關於k8s的知識點,我也是剛入門,這方面的知識建議參考部落格園大神edisonchou的系列文章《.NET Core on K8S學習實踐系列文章索引(Draft版)》
LVS+Keepalived實現高可用負載均衡
lvs+keepalived 高可用 負載均衡 用LVS+Keepalived實現高可用負載均衡,簡單來說就是由LVS提供負載均衡,keepalived通過對rs進行健康檢查、對主備機(director)進行故障自動切換,實現高可用。1. LVS NAT模式配置準備三臺服務器,一臺director, 兩
Keepalived實現高可用Nginx反向代理
keepalived實現高可用nginx反向代理由於好久沒有接觸過負載相關的調試了復習一下實驗系統:(1)CentOS 6.5_x86_64;(2)共有二臺主機,本實驗以ip地址來命名主機,即10主機、11主機。實驗前提:防火墻和selinux都關閉,主機之間時間同步實驗軟件:nginx-1.10.2-1.e
Linux運維學習之keepalived實現高可用集群
keepalived 高可用 lvs 集群技術是一種較新的技術,通過集群技術,可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對較高的收益,其任務調度則是集群系統中的核心技術。高可用高可用集群,簡單的說,集群就是一組計算機,它們作為一個整體向用戶提供一組網絡資源。 高可用
LVS-keepalived實現高可用
keepalived前言: LVS是基於內核實現負載均衡的,在小編的上一篇演示中我們已經實現了LVS的NAT模式和DR模式,但是企業中只有負載均衡是不行的,如果一臺負載均衡器楚翔了故障,那麽就會導致整個集群的不可用,所以這裏結合LVS我們通過keepalived這個神器來實現高可用。 高可用:通常來描
mysql+proxysql+keepalived實現高可用的數據庫讀寫分離
mysql讀寫分離 主從復制 proxysql前言 為了降低一臺數據庫的IO,遠程連接數據庫的時候,可以實現讀寫分離進行調度。這裏就出現了一個單點,所以必須要做一個高可用。當然數據庫服務器也需要做主從復制。實驗結構 說明:上圖的拓撲只是整個架構中的一個小部分,其余功能的實現此圖並未規
項目實戰3—Keepalived 實現高可用
ack logs 時間 mage 通知機制 http targe not table 實現基於Keepalived高可用集群網站架構 環境:隨著業務的發展,網站的訪問量越來越大,網站訪問量已經從原來的1000QPS,變為3000QPS,目前業務已經通過集群LVS架
HaProxy+Keepalived+Mycat高可用群集配置
HaProxy+Keepalived+M概述 本章節主要介紹配置HaProxy+Keepalived高可用群集,Mycat的配置就不在這裏做介紹,可以參考我前面寫的幾篇關於Mycat的文章。 部署圖: 配置 HaProxy安裝181和179兩臺服務器安裝haproxy的步驟一致--創建haproxy用戶