1. 程式人生 > >RabbitMQ叢集部署

RabbitMQ叢集部署

1.rabbitmq組建叢集

1)安裝rabbitmq-server
yum install rabbitmq-server


2)在一個節點上面啟動
service rabbitmq-server start
3)拷貝/var/lib/rabbitmq/.erlang.cookie  到其他節點的/var/lib/rabbitmq/目錄下,注意保持許可權一致。
所有節點重啟服務:service rabbitmq restart


4)檢視節點資訊,正常情況如下:
rabbitmqctl cluster_status
Cluster status of node [email protected] ...
[{nodes,[{disc,[
[email protected]
]}]},
{running_nodes,[[email protected]]},
{partitions,[]}]
...done.
5)將node-3連線到control節點            #測試能否線上水平擴容
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
6)再檢視下所有節點叢集資訊
[[email protected] ~]# rabbitmqctl cluster_status
Cluster status of node
[email protected]
...
[{nodes,[{disc,[[email protected],'[email protected]ode-3']}]},
 {running_nodes,['[email protected]',[email protected]]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]}]
...done.
表示加入叢集成功
7)建立使用者和配置許可權,在任意節點即可
#建立使用者和密碼
rabbitmqctl add_user openstack openstack 
#給使用者配置角色
rabbitmqctl set_user_tags openstack administrator
#給使用者配置許可權
rabbitmqctl set_permissions -p / openstack ".*" ".*" ".*"
8)開啟rabbitmq映象功能,需要基於rabbitmq策略來實現。
rabbitmqctl set_policy -p /  ha-allqueue "." '{"ha-mode":"all"}'
# -p  表示名稱空間,/  表示根目錄
#對佇列名稱以 ’hello‘ 開頭的所有佇列進行映象,並在叢集的兩個節點上完成映象,policy的設定命令為:
rabbitmqctl  set_policy  hello-ha  "^hello"  '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'



2、Rabbitmq相關命令

####命令###
rabbitmqctl list_users  #檢視當前使用者
rabbitmqctl list_policies  #檢視策略
rabbitmqctl list_queues  #檢視訊息佇列


3、其他資料
OpenStack 官方建議至少使用三節點 RabbitMQ 叢集,而且推薦配置是使用映象佇列。對於測試和演示環境,使用兩節點也是可以。以下OpenStack 服務都支援這種 A/A 形式的 RabbitMQ:
  • 計算服務
  • 塊裝置儲存服務
  • 網路服務
  • Telemetry
OpenStack 支援如下的 RabbitMQ 配置:


rabbit_hosts=rabbit1:5672,rabbit2:5672,rabbit3:5672:所有RabbitMQ 服務列表
rabbit_retry_interval=1: 連線失敗時候的重試間隔
rabbit_retry_backoff=2: How long to back-off for between retries when connecting to RabbitMQ。不太明白其含義。
rabbit_max_retries=0:最大重試次數。0 表示一直重試
rabbit_durable_queues=true:true 的話表示使用永續性佇列,Kilo 中預設為 false。
rabbit_ha_queues=true: 設定為 true 的話則使用映象佇列,並設定 x-ha-policy 為 all;但是 Kilo 中其預設值為 false。


**************
4、問題解決:
1.rabbitmq重啟失敗,看日誌提示如下資訊
=INFO REPORT==== 20-Sep-2016::23:32:41 ===
Error description:
   {could_not_start,rabbit,
       {bad_return,
           {{rabbit,start,[normal,[]]},
            {'EXIT',
                {rabbit,failure_during_boot,
                    {error,
                        {timeout_waiting_for_tables,
                            [rabbit_user,rabbit_user_permission,rabbit_vhost,
                             rabbit_durable_route,rabbit_durable_exchange,
                             rabbit_runtime_parameters,
                             rabbit_durable_queue]}}}}}}}
 

解決辦法:

應該是mnesia資料庫出現了問題,清除/var/lib/rabbitmq/mnesia/[email protected]目錄下所有檔案,然後重啟成功





參考文件:
1. http://www.cnblogs.com/sammyliu/p/4730517.html
2. http://www.rabbitmq.com/clustering.html  官方文件

相關推薦

Centos7-rabbitmq叢集部署

一、對應主機host地址(每臺主機host檔案要保持一致)(每臺都操作) 172.16.2.61 rabbitmq01 172.16.2.62 rabbitmq02 二、每臺都安裝rabbitmq-server(注意:要先裝epel-release擴充套件源)(每臺都操作)

rabbitmq叢集部署及配置

訊息中介軟體rabbitmq,一般以叢集方式部署,主要提供訊息的接受和傳送,實現各微服務之間的訊息非同步。本篇將以rabbitmq+HA方式進行部署。 一、原理介紹 rabbitmq是依據erlang的分散式特性(RabbitMQ底層是通過Erlang架構來實現的,所以ra

RabbitMQ叢集部署

1.rabbitmq組建叢集 1)安裝rabbitmq-server yum install rabbitmq-server 2)在一個節點上面啟動 service rabbitmq-server start 3)拷貝/var/lib/rabbitmq/.erlang.c

CentOS 部署RabbitMQ叢集

1. 準備兩臺CentOS,資訊如下: node1:10.0.0.123 node2:10.0.0.124 修改hostname請參照: $ hostname # 檢視當前的hostname $ hostname node1 # 設定當前的hostname(立即生效)

rabbitmq線上遇到的問題以及叢集部署遇到的坑

作業系統發行版:CentOS7 RabbitMQ版本:3.6.11 伺服器主機規劃: 10.168.17.102 mq07.mq-cluster.mall.lt.com 10.168.17.98 mq08.mq-cluster.mall.lt.com 10.168.17.64

RabbitMQ高可用叢集部署及配置+HAproxy負載(原始碼)

1.環境 rabbitmq-1 10.24.43.4 centos6.x rabbitmq-2 10.24.43.5 centos6.x 2.

(十)RabbitMQ訊息佇列-高可用叢集部署實戰

前幾章講到RabbitMQ單主機模式的搭建和使用,我們在實際生產環境中出於對效能還有可用性的考慮會採用叢集的模式來部署RabbitMQ。 RabbitMQ叢集基本概念 Rabbit模式大概分為以下三種:單主機模式、普通叢集模式、映象叢集模式。 單主機模式:

Centos 7上部署Rabbitmq叢集

rabbitmq訊息中介軟體裡面的概念和功能 publisher(生產者)   生產訊息的功能。 consumer(消費者)  訊息的處理者。 broker                &

RabbitMQ 單機部署 && 叢集部署 && HAProxy 負載均衡搭建

準備工作 搭建 RabbitMQ Server 單機版 RabbitMQ Server 高可用叢集相關概念 搭建 RabbitMQ Server 高可用叢集 搭建 HAProxy 負載均衡 一、準備工作(centos7.2 1511) 1.node1:172.16.25

02 使用Docker部署RabbitMQ叢集

用Docker部署RabbitMQ叢集 Welcome to Alibaba Cloud Elastic Compute Service ! [[email protected] ~]# docker pull rabbitmq Using defa

Rabbitmq叢集高可用部署詳細

序言 清風萬里的季節,週末本該和親人朋友一起消遣這爛漫的花花草草,或是懶洋洋的晒個太陽聽聽風聲鳥鳴。無奈工作使然,理想使然,我回到啦公司,敲起啦鍵盤,擼起啦程式碼,程式狗的世界一片黯然,一片黯然,願天下所有努力的程式狗都夢想成真吧!! 回到正題,為什麼搭建rabbitmq叢

rabbitMQ安裝部署

rabbitmq安裝erlangyum install erlang2.安裝rabbitmqwget yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm3.啟動服務systemctl start rabbitmq-server.service4.查看服務狀態

rabbitmq編譯部署以及常見報錯

ffline 主機 copy don sna 第一個 輸出 3.2 can (一)源碼安裝Erlang(1)下載erlang源碼包wget http://www.erlang.org/download/otp_src_R13B04.tar.gz(2)解壓縮erlang源碼包

Spring Boot專案配置RabbitMQ叢集

//具體參看了配置的原始碼 org.springframework.boot.autoconfigure.amqp.RabbitProperties //RabbitMQ單機 spring:   rabbitmq:     host: localh

FastDFS伺服器叢集部署和整合客戶端到SpringBoot

FastDFS是一個開源的輕量級分散式檔案系統,它對檔案進行管理,功能包括:檔案儲存、檔案同步、檔案訪問(檔案上傳、檔案下載)等,解決了大容量儲存和負載均衡的問題,同時也能做到在叢集環境下一臺機子上傳檔案,同時該組下的其他節點下也備份了上傳的檔案。做分散式系統開發時,其中要解決的一個問題就是圖片、音視訊

kubernetes實戰(四):k8s持久化安裝rabbitmq叢集

1、下載檔案 https://github.com/dotbalo/k8s/tree/master/rabbitmq-cluster   2、建立namespace kubectl create namespace public-service   如果不使用publi

搭建配置rabbitmq叢集過程

由於公司很早就搭建了mq的環境,測試環境單節點單例項,最近頻繁出問題,包括落盤檔案過多導致磁碟爆滿等,所以決定將中介軟體伺服器做成叢集模式,為保證遷移後順暢使用,都是使用的跟之前一樣的老版本。 安裝erlang環境 tar -xvf otp_src_17.3.tar.gz mkdir /us

rabbitmq叢集模式安裝

環境 centos 7.4 172.16.91.217 172.16.91.218   安裝包版本 http://www.erlang.org/download/otp_src_18.3.tar.gz otp_src_18.3.tar.gz http://www

RabbitMQ VS Apache Kafka (九)—— RabbitMQ叢集的分割槽容錯性與高可用性

本章,我們討論有關RabbitMQ的容錯性,訊息一致性及高可用性。RabbitMQ可以作為叢集節點來執行,因此RabbitMQ通常被歸為分散式訊息系統,對於分散式訊息系統,我們的關注點通常是一致性與可用性。 我們為什麼要討論分散式系統的一致性與可用性,本質在於兩者描述的是系統在失敗的

Centos7+nginx+tomcat 叢集部署實戰

1:安裝centos7(連結:http://pan.baidu.com/s/1o80x36a 密碼:xuwb),安裝步驟自己百度,並克隆4個虛擬機器 我的ip為(192.168.72.129 192.168.72.130 192.168.72.131 192.168.72.132) 2: