rabbitmq集群搭建

2022-07-04 22:06:14 字數 2405 閱讀 5313

目錄rabbitmq是用erlang語言開發的,erlang語言最初用於交換機領域,這樣就使得rabbitmq和broker(server)之間進行資料互動的效能是非常優秀的,erlang有著和原生socket一樣的延遲,集群非常方便,因為erlang天生就是分布式語言,但其本身不支援負載均衡。

rabbitmq模式大概分為以下三種:

單一模式

普通模式(預設的集群模式)

映象模式(把需要的佇列做成映象佇列,存在於多個節點。屬於rabbitmq的ha方案,在對業務的可靠性要求較高的場合中比較適用)

rabbitmq的集群節點包括記憶體節點和磁碟節點。rabbitmq支援訊息的持久化也就是資料解除安裝磁碟上,最合適的方案就是既有磁碟節點,又有記憶體節點。

環境規劃

1、安裝依賴包

yum install build-essential openssl openssl-devel unixodbc unixodbc-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz socat
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
4、安裝erlang和rabbitmq

rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm

rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

5、修改hosts,保證三颱伺服器直接都可以相互ping通

vim /etc/hosts

10.200.200.10 rabbitmq01

10.200.200.20 rabbitmq02

10.200.200.30 rabibtmq03

6、啟動rabbitmq服務

systemcetl start rabbitmq-server
7、選擇其中一台erlang.cookie為準,拷貝到其他節點,這裡假設為第一台

cd /var/lib/rabbitmq/

scp .erlang.cookie root@rabbit02:/var/lib/rabbitmq/

scp .erlang.cookie root@rabbit03:/var/lib/rabbitmq/

8、拷貝完如果直接重啟的話會導致服務起不來,因為檔案的許可權不對

cd /var/lib/rabbitmq/

chown -r rabbitmq. .erlang.cookie

chmod 400 .erlang.cookie

9、檢查外掛程式

/usr/lib/rabbitmq/bin/rabbitmq-plugins list //檢視外掛程式安裝情況

/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management //啟用rabbitmq_management服務

systemctl restrart rabbitmq-server

10、將rabbitmq02/rabbitmq03加入到集群節點

rabbitmqctl reset

rabbitmqctl join_cluster --ram rabbit@rabbitmq01

11、檢視集群狀態

rabbitmqctl cluster_status
12、新增全域性映象策略

admin->policies->add/update a policy

name:ha_all

pattern:^

defiinition: ha-mode=all

add policy

或者使用命令列工具

./rabbitmqctl set_policy ha-all "^" '' ./rabbitmqctl set_policy ha-all "^" ''

在建立佇列時,arguments中設定ha-mode=all,建立完成之後,在policy中要看到剛剛建立的queue,會顯示+2(表示3個節點)。

當有節點故障時,服務恢復,顯示粉色的+,需要在該節點手動執行rabbitctl sync_quere佇列名稱同步,就會恢復。

搭建rabbitmq集群

訪問管理位址http ip 15672 使用guest使用者登入 1.配置hosts檔案 10.1.10.201 controller 10.1.10.105 rabbitmq01 10.1.10.106 rabbitmq02 2.採用從主節點copy的方式保持cookie的一致性 root con...

Rabbitmq 集群搭建

目錄在生產環境中經常會遇到伺服器斷電 主機板故障,吞吐量猛增,記憶體不足 磁碟不足等情況,單機節點的rabbitmq顯然無能為力,這時需要搭建乙個rabbitmq集群來解決這些問題。通過 erlang 的分布式特性建立rabbitmq 集群,各 rabbitmq 服務為對等節點,即每個節點都提供服務...

docker搭建 rabbitmq集群

1 拉取映象 docker pull rabbitmq management 2 執行容器 docker run d hostname rabbit host1 name rabbitmq1 p 15672 15672 p 5672 5672 e rabbitmq erlang cookie rab...