Rabbitmq集群的搭建

jopen 9年前發布 | 43K 次閱讀 消息系統 RabbitMQ

RabbitMQ集群的搭建

系統環境

三臺機器分別為centos6.6 64位

  1. vm61 192.168.1.61
  2. vm62 192.168.1.62
  3. vm63 192.168.1.63

安裝

由于RabbitMQ是由erlang寫的,所以需要erlang的運行環境,直接使用yum進行安裝

yum install erlang 安裝完erlang后,安裝RabbitMQ

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

三臺機器安裝完rabbitmq后,首先在vm61上啟動rabbitmq

service rabbitmq-server start 然后將vm61上的/var/lib/rabbitmq/.erlang.cookie中的內容復制到vm62和vm63上的/var/lib/rabbitmq/.erlang.cookie文件中即三臺服務器必須具有相同的cookie,如果不相同的話,無法搭建集群

配置

查看vm61上的集群的狀態

rabbitmqctl cluster_status 得到如下結果

Cluster status of node rabbit@vm61 ... [{nodes,[{disc,[rabbit@vm61]}]}, {running_nodes,[rabbit@vm61]}, {cluster_name,<"rabbit@localhost.localdomain">}, {partitions,[]}]

啟動vm62、vm63上的rabbitmq

service rabbitmq-server start 將vm62加入集群

rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@vm61 rabbitmqctl start_app 將vm63加入集群

rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@vm61 rabbitmqctl start_app

查看集群的狀態

rabbitmqctl cluster_status 得到如下結果

Cluster status of node rabbit@vm61 ... [{nodes,[{disc,[rabbit@vm61,rabbit@vm62,rabbit@vm63]}]}, {running_nodes,[rabbit@vm63,rabbit@vm62,rabbit@vm61]}, {cluster_name,<"rabbit@localhost.localdomain">}, {partitions,[]}] 說明集群創建成功

錯誤

  1. 如果3臺服務器的cookie不一致的話,會導致集群通信失敗,無法創建集群
  2. 如果出現如下問題的話

    Clustering node rabbit@vm62 with rabbit@vm61 ... Error: unable to connect to nodes [rabbit@vm61]: nodedown DIAGNOSTICS

    attempted to contact: [rabbit@vm61] rabbit@VMS00386:

    • unable to connect to epmd (port 4369) on VM61: nxdomain (non-existing domain) current node details:

      • node name: 'rabbitmqctl-rabbit@vm62'
      • home dir: /var/lib/rabbitmq
      • cookie hash: 50YO3zK+HJHos0tab1vHjg== 則需要在每臺服務器上添加

      vi /etc/hosts vm61 192.168.1.61 vm62 192.168.1.62 vm63 192.168.1.63 即可解決,問題原因為無法解析地址導致的

  3. cluster搭建起來后若在web管理工具中rabbitmq_management的Overview的Nodes部分看到“Node statistics not available”的信息,說明在該節點上web管理插件還未啟用。直接在顯示提示信息的節點上運行

    rabbitmq-plugins enable rabbitmq_management 即可。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!