1. 程式人生 > >centos7 rabbitmq叢集建立

centos7 rabbitmq叢集建立

下載

http://www.rabbitmq.com/releases/erlang/erlang-19.0-1.el7.centos.x86_64.rpm

https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/:rabbitmq-server-3.6.12-1.el7.noarch.rpm

三節點IP

192.168.22.177

192.168.22.178

192.168.22.179

# cat /etc/redhat-release 

CentOS Linux release 7.1.1503 (Core) 

修改三個節點的/etc/hosts檔案,把三個節點IP和對應的主機名分別寫入三個節點的檔案中。

1、安裝

三個節點安裝

# rpm -ivh erlang-19.0-1.el7.centos.x86_64.rpm

# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm 

warning: rabbitmq-server-3.6.12-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY

error: Failed dependencies:

        socat is needed by rabbitmq-server-3.6.12-1.el7.noarch

# yum install socat

# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm 

啟動服務

# rabbitmq-server -detached

檢視狀態

# rabbitmqctl status

列出外掛

# rabbitmq-plugins list

開啟頁面管理外掛

# rabbitmq-plugins enable rabbitmq_management

2、建立叢集

保持三個節點.erlang.cookie檔案一致

# find / -name "*.erlang.cookie*"

/var/lib/rabbitmq/.erlang.cookie

# ll /var/lib/rabbitmq/.erlang.cookie 

-r-------- 1 rabbitmq rabbitmq 20 Oct 24 00:00 /var/lib/rabbitmq/.erlang.cookie

將177作為主節點,拷貝177上的.erlang.cookie檔案到另外兩個節點的/var/lib/rabbitmq目錄下

並修改拷貝後的檔案許可權

# chown rabbitmq:rabbitmq .erlang.cookie

178、179兩個節點

殺掉rabbitmq的程序

# kill -9 

把節點加入叢集

# rabbitmq-server -detached

關閉應用

# rabbitmqctl stop_app

加入叢集

# rabbitmqctl join_cluster [email protected]

啟動應用

# rabbitmqctl start_app

177節點檢視

# rabbitmqctl cluster_status 

Cluster status of node '[email protected]'

[{nodes,[{disc,['[email protected]','[email protected]',

                '[email protected]']}]},

 {running_nodes,['[email protected]','[email protected]',

                 '[email protected]']},

 {cluster_name,<<"[email protected]">>},

 {partitions,[]},

 {alarms,[{'[email protected]',[]},

          {'[email protected]',[]},

          {'[email protected]',[]}]}]

3、web管理頁面配置  

177建立rabbitmq管理頁面管理使用者

# rabbitmqctl add_user root Password

# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

# rabbitmqctl set_user_tags root administrator

可以使用使用者root通過瀏覽器登入web管理介面http://192.168.22.177:15672

在web介面,登陸後,點選“Admin--Virtual Hosts(頁面右側)”,在開啟的頁面上的下方的“Add a new virtual host”處增加一個虛擬主機test,同時給使用者“root”和“guest”均加上許可權

177上做

# rabbitmqctl set_policy -p test  ha-all "^" '{"ha-mode":"all"}'

"test" vhost名稱, "^"匹配所有的佇列, ha-all 策略名稱為ha-all, '{"ha-mode":"all"}' 策略模式為 all 即複製到所有節點,包含新增節點。

則此時映象佇列設定成功。(這裡的虛擬主機test是程式碼中需要用到的虛擬主機,虛擬主機的作用是做一個訊息的隔離,本質上可認為是一個rabbitmq-server,是否增加虛擬主機,增加幾個,這是由開發中的業務決定,即有哪幾類服務,哪些服務用哪一個虛擬主機,這是一個規劃)。

4、安裝haproxy

177上安裝haproxy

# yum install haproxy

# vi /etc/haproxy/haproxy.cfg

刪除60行之後的內容

#---------------------------------------------------------------------

# main frontend which proxys to the backends

#---------------------------------------------------------------------

......

新增

listen rabbitmq_local_cluster 0.0.0.0:5670

    mode tcp

    balance roundrobin

    server rabbit1 192.168.22.177:5672 check inter 5000 rise 2 fall 3

    server rabbit2 192.168.22.178:5672 check inter 5000 rise 2 fall 3

    server rabbit3 192.168.22.179:5672 check inter 5000 rise 2 fall 3

listen private_monitoring :8100

    mode http

    option httplog

    stats enable

    stats uri       /stats

    stats refresh 60s

    stats auth admin:admin

# systemctl start haproxy.service

http://192.168.22.177:8100/stats

5、rabbitmq使用的日常命令

啟動rabbitmq 

rabbitmq-server -detached

檢視rabbitmq狀態 

rabbitmqctl status

節點服務管理

systemctl start rabbitmq-server.service

systemctl stop rabbitmq-server.service

systemctl restart rabbitmq-server.service

新增節點到叢集

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster [email protected]

rabbitmqctl start_app

檢視叢集狀態

rabbitmqctl cluster_status

新增賬號:

rabbitmqctl add_user admin admin

新增 許可權tag

rabbitmqctl set_user_tags admin administrator

刪除使用者(刪除guest使用者)

rabbitmqctl delete_user guest

修改使用者的密碼

rabbitmqctl  change_password  Username  Newpassword

檢視當前使用者列表

rabbitmqctl  list_users

參考:

https://blog.csdn.net/u012062455/article/details/80003763

https://www.cnblogs.com/saneri/p/7798251.html

https://blog.csdn.net/jxdl6655/article/details/78194191

http://www.bubuko.com/infodetail-2710921.html

相關推薦

centos7 rabbitmq叢集建立

下載 http://www.rabbitmq.com/releases/erlang/erlang-19.0-1.el7.centos.x86_64.rpm https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/:rabb

Centos7-rabbitmq叢集部署

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

centos7 rabbitMQ叢集搭建

資料參考網址 http://blog.csdn.net/woogeyu/article/details/51119101 http://www.cnblogs.com/lion.net/p/5725474.html https://segmentfault.co

centos7 環境安裝rabbitmq 叢集

繼上一篇https://www.cnblogs.com/drafire/p/10062891.html ,這篇部落格繼續介紹centos 7下安裝rabbitmq的叢集。 今天在公司搞了一天的rabbitmq,各種牛鬼蛇神的部落格都看過了,終於看到了一遍說得有點模樣的了,廢話不多說,直接上乾貨。

虛擬機器VMware搭基於Centos7rabbitMQ叢集

背景 將一個已經裝有單機版rabbitMQ的虛擬機器進行克隆。克隆四臺。這進行的是完整克隆。四臺機分別用於 記憶體節點1,記憶體節點2,磁碟節點,反向代理節點。 使用記憶體節點可以加快應用程式建立交換器,佇列等物件。這些物件的元資料只會在磁碟節點發生IO操作,其它節點都

Centos7 RabbitMQ訊息佇列叢集

一、簡介       MQ(Message Queue,訊息佇列)是一款訊息中介軟體,一般以叢集方式部署,主要提供訊息的接受和傳送,實現各微服務之間的訊息非同步。 1、叢集原理       rabbitmq 是依據erlang

Kubernetes(K8S)叢集centos7.4下建立

自己在搭Kubernetes(K8S)叢集下遇到的坑寫一點隨筆。 本次採用192.168.60.21,192.168.60.22,192.168.60.23作為需要裝的伺服器。 master需要安裝etcd, flannel,docker, kubernetes   192.168.6

RabbitMQ: 批量建立節點並組成叢集

多核 CPU 上建立叢集的好處很明顯,可以充分地利用 CPU 運算能力。 之前講的都是在單機上用命令方式逐個建立節點,然後由這些節點組成叢集。 其實如果是在同一臺計算機上建立多個節點,RabbitMQ 提供了一個便捷的命令來批量操作。 這個命令是:rabbitmq-mul

CentOS7.4下建立DNS主從服務器(二)

bind dns master-slave (一)DNS主從同步的原理:1、master DNS服務器每次修改完成並重啟服務後,將傳送notify給所有的slave DNS服務器; 2、slave DNS服務器將查詢master服務器的SOA記錄; 3、master DNS服務器收到請求後將SOA

Spring Boot專案配置RabbitMQ叢集

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

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通常被歸為分散式訊息系統,對於分散式訊息系統,我們的關注點通常是一致性與可用性。 我們為什麼要討論分散式系統的一致性與可用性,本質在於兩者描述的是系統在失敗的

【轉】postgresql 檢視資料庫叢集建立時間

原文連結:https://blog.csdn.net/ctypyb2002/article/details/80930809 使用 pg_controldata 檢視 Database system identifier $ /usr/pgsql-10/bin/pg_controldata

rabbitmq叢集運維一點總結

說明:以下操作都以三節點叢集為例,機器名標記為機器A、機器B、機器C,如果為雙節點忽略機器C,如果為各多節點則與機器C操作相同 一、rabbitmq叢集必要條件 1.1、繫結實體ip,即ip a所能查詢到的繫結到網絡卡上的ip,以下是繫結方法: 1 #編輯配置路徑 /etc/rabbitmq/ra

關於RabbitMQ叢集的一些知識點彙總

一、如何選擇RabbitMQ的訊息儲存方式? RabbitMQ對queue中message的儲存有兩種方式:disc和ram。 如果採用disc,則需要對exchange/queue/delivery mode都要設定成durable模式。 disc方式的好處是當RabbitMQ失效

CentOS 部署RabbitMQ叢集

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

Rabbitmq叢集詳解

Rabbitmq簡介 1、什麼是rabbitmq? MQ全稱為MessageQueue,訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。應用程式通過寫和檢索出入列隊的針對應用程式的資料(訊息)來通訊,而無需專用連線來連結它們。RabbitMQ 是一個由 Erlang 語言開發的 AMQP(高階訊

多機搭建haproxy+rabbitmq叢集

環境說明: 主機1:192.168.0.234 mq01 DISK 主機2:192.168.0.235 mq02 RAM 主機3:192.168.0.236 mq03 RAM 主機4:測試機器,安裝了jdk-8u151-linux-x64,   作業系統:Cen