1. 程式人生 > >RabbitMQ在linux系統中叢集配置

RabbitMQ在linux系統中叢集配置

一、叢集環境及安裝jar包準備
1、linux環境準備
a、兩臺(多臺)Centos6.5虛擬機器,設定hostname分別為mq01、mq02。
b、Ip地址為:mq01:192.168.19.40 mq02:192.168.19.50
c、修改兩臺虛擬機器Hosts檔案: /etc/hosts檔案
Mq01:
[[email protected] bin]# cat /etc/hosts
127.0.0.1 mq01 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 mq01 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.40 mq01
192.168.19.50 mq02
Mq02:
[

[email protected] bin]# cat /etc/hosts
127.0.0.1 mq02 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 mq02 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.40 mq01
192.168.19.50 mq02

d、保證兩臺虛擬機器能互相ping通:[[email protected] ~]# ping 192.168.19.50
這裡寫圖片描述

2、Jar包版本
a、Erlang:17.3-1
b、RabbitMq:3.6.1-1

2、安裝注意事項:
a、安裝RabbitMQ
上傳:rabbitmq-server-3.6.1-1.noarch.rpm檔案到/usr/local/src/rabbitmq/
安裝:rpm –ivh rabbitmq-server.3.6.1-1.noarch.rpm

b、配置開啟使用者遠端訪問:預設只允許localhost使用者訪問。
cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example etc/rabbitmq/rabbitmq.config #複製配置檔案
(安裝目錄:/usr/share/doc/rabbitmq-server-3.6.1)
vi /etc/rabbitmq/rabbitmq.config P64行
注意:檔案有兩處下面程式碼,vi/vim都有提示行數,必須找到64行的修改,否則會導致啟動失敗。
%% {loopback_users, []},
修改1:去掉前面的兩個%%,
修改2:最後面的逗號,儲存。
修改結果如下:

c、開啟後臺管理外掛
執行下面命令,開啟web介面管理工具
rabbitmq-plugins enable rabbitmq_management

d、防火牆開啟15672和5672埠
/sbin/iptables –I INPUT –p tcp –dport 15672 –j ACCEPT #控制檯埠
/sbin/iptables –I INPUT –p tcp –dport 5672 –j ACCEPT #程式訪問埠

/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status

e、啟動、停止服務
service rabbitmq-server start

service rabbitmq-server stop
service rabbitmq-server restart
錯誤日誌目錄:/var/log/rabbitmq/startup_err
設定開機啟動
chkconfig rabbitmq-server on

f、訪問管理平臺
firefox #開啟虛擬機器上的火狐
http://localhost:15672/
預設使用者名稱密碼都為guest
注意:出於安全的考慮,guest這個預設的使用者只能通過http://localhost:15672 本地來登入,不能外部伺服器登入,也就是不能遠端訪問,這對於伺服器上沒有安裝桌面的情況是無法管理維護的。必須新建立管理員賬號。

三、RabbitMQ單一啟動
(登陸操作,新增使用者,建立vhost等略)
單一啟動主要測試安裝是否正常,待正常完成安裝後,測試幾個常用操作:
[[email protected] bin]# rabbitmq-server -deched –後臺啟動服務
[[email protected] bin]# rabbitmqctl start_app –啟動服務
[[email protected] bin]# rabbitmqctl stop_app –關閉服務
[[email protected] bin]# rabbitmq-plugins enable rabbitmq_management –啟動web管理外掛
[[email protected] bin]# rabbitmqctl add_user zlh zlh –新增使用者,密碼
不出現ERROR,FAILED等字樣說明啟動成功。

四、一般模式叢集
1、叢集配置
在上述的兩臺機器上安裝rabbitmq完成之後,你可以看到你的機器中有如下1個檔案。路徑在$HOME中或者在/var/lib/rabbitmq中,檔名稱為.erlang.cookie,他是一個隱藏檔案。這檔案儲存的內容是cookie值。

這樣說吧:RabbitMQ的叢集是依賴erlang叢集,而erlang叢集是通過這個cookie進行通訊認證的,因此我們做叢集的第一步就是統一cookie值。

a、在/var/lib/rabbitmq目錄下,通過ll -a命令可檢視隱藏檔案,修改cookie值一致。

b、修改檔案許可權:chmod 600 .erlang.cookie (兩個系統一致許可權)

c、停止當前機器中的RabbitMQ服務
[[email protected] ~]# ./rabbitmqctl stop_app

d、把mq01中的rabbitmq加入到叢集中來
[r[email protected] ~]# rabbitmqctl join_cluster –ram [email protected]

注意:
A、在加入叢集操作中,mq02會訪問mq01,由於是兩臺虛擬機器的訪問,所以原先mq01虛擬機器還需要開放4369,25672這兩個埠
B、加入叢集操作,操作的機器必須先停止服務

e、開啟當前機器中的RabbitMQ服務
[[email protected] ~]# ./rabbitmqctl start_app

f、檢視叢集狀態
[[email protected] ~]# ./rabbitmqctl cluster_status
Cluster status of node [email protected]
[{nodes,[{disc,[[email protected]]},{ram,[[email protected] ]}]},
{running_nodes,[[email protected],[email protected] ]},
{cluster_name,<<”[email protected] “>>},
{partitions,[]},
{alarms,[{[email protected],[]},{rabbitmq02 F,[]}]}]

g、檢視客戶端網頁管理nodes
這裡寫圖片描述

(原來的單一節點會增加,name名字為虛擬機器hostname)

說明:一般叢集配置是負載均衡的一種體現,他(多個例項)增加了訊息生產者的入口,共享了訊息佇列queue,一定程度上緩解了單點rabbitmq伺服器的吞吐壓力,多個例項叢集在一個一起,比如,a,b都叢集在c上,如果c宕機,那麼整個rabbitmq都宕機,這也是這個模式的最大缺陷。(a,b宕機並不影響c)
這裡寫圖片描述

五、高可用映象佇列
1、為了解決RabbitMQ的高可用的問題,引入映象高可用模式:
這裡寫圖片描述
把佇列複製同步映象,如圖,把佇列A複製一份映象B,如果佇列A所在伺服器宕機,那麼映象佇列B中訊息會轉移到其他伺服器中,其他伺服器上消費者可以消費訊息,避免了訊息的丟失。如果佇列A所在伺服器重會服務,映象效果依然會存在。
缺點,映象的訊息是實時同步的,過多的映象會佔用很大的頻寬開銷。

先上例子慢慢說:
[[email protected] ~]# ./rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’
引數意思為:

ha-all:為策略名稱。

^:為匹配符,只有一個^代表匹配所有,^zlh為匹配名稱為zlh的exchanges或者queue。

ha-mode:為匹配型別,他分為3種模式:all-所有(所有的queue),exctly-部分(需配置ha-params引數,此引數為int型別比如3,眾多叢集中的隨機3臺機器),nodes-指定(需配置ha-params引數,此引數為陣列型別比如[“[email protected]”,”[email protected]”]這樣指定為mq01與mq02這2臺機器。)。
參考文件中三種匹配型別的示例:

第一種:給匹配某種命名的所有佇列複製映象,如下
這裡寫圖片描述

第二種:隨機給叢集中的2臺(數字自己定)
這裡寫圖片描述

第三種:把指定命名規則的佇列映象由某個節點複製到另一個節點(另一個伺服器)
這裡寫圖片描述
六、Docker容器安裝
見《Docker容器中部署RabbitMQ叢集》

相關推薦

RabbitMQ在linux系統叢集配置

一、叢集環境及安裝jar包準備 1、linux環境準備 a、兩臺(多臺)Centos6.5虛擬機器,設定hostname分別為mq01、mq02。 b、Ip地址為:mq01:192.168.19.

老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統LVM配置實現方法?

邏輯卷管理 磁盤 每日一題 1.題目老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?2.參考答案01:將一個或多個物理分區創建為一個PV# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" success

Centos6.7或7.2系統 github配置及基本使用

github配置及基本使用1.安裝 yum install git git-gui 2.生成密鑰對 ssh-keygen -t rsa -C "github郵箱地址"1、首先要檢查key是不是已經存在,2、打開一個終端,並輸入以下命令:$ ls -al ~/.ssh如果

Linux(六)Linux系統安裝配置JDK

1.首先將JDK安裝檔案拷貝到Linux系統中    這裡我是在虛擬機器中操作,我通過共享資料夾進行檔案傳輸,如果是遠端Linux系統可以使用xftp(在我前面部落格講過如何使用)進行檔案傳輸。    從共享資料夾中拷貝到/usr/local/目錄下    2.對壓縮包進行解

BASIS系統如何配置web service

在不同的客戶端,需要對該客戶端進行配置才能執行Web Service 1. 配置伺服器 使之能解析Xml檔案(這個只需要配置一次,以後就不需要配置了), T-code: SICF 分別啟用下面幾個路徑的檔案(如圖:黑體部分是需要啟用的,如沒有完全開啟,說明下層所有的都需要啟

在Mac系統安裝配置Tomcat及和Eclipse 配置

 第一步:下載Tomcat       直接下載如下選中即可: 第二步:   下載完成後 ,把解壓的資料夾放到一個目錄下   /Users/lang/下 1.開啟你的終端:然後輸入  pico .bash_profile   回車   pico 和.ba

Linux系統vsftpd配置及如何新增vsFTPd使用者和設定許可權

/etc/vsftpd/vsftpd.conf 本身就是一個挺詳細的配置檔案,且使用『 man 5 vsftpd.conf 』則可以得到完整的引數說明。與主機較相關的設定值 connect_from_port_20=YES (NO) ftp-data 的埠; listen_port=21 vsftpd 使用的

Linux系統網路配置詳解

從linux誕生的那一天起,就註定了它的網路功能空前地強大.所以在linux系統中如何配置網路,使其高效,安全的工作就顯得十分重要.下面我們就從網路裝置的安裝,網路服務的設定和網路安全性三個方面來介紹一下linux系統中網路的設定. 一.安裝和配置網路裝置   在安裝linu

Linux系統安裝配置Nginx

準備工具: 安裝包:nginx-1.12.0.tar.gz 下載地址: http://nginx.org/en/download.html 伺服器環境:1.CentOS6.464 位 2. 安裝 c++編譯環境( 如果沒有c++編譯環境,請輸入這串指令:yum inst

【linux】linux系統常見配置文件說明

pre clas sysctl 最大 code sem ipv4 proc 異步 1.配置文件/proc/sys/fs/file-nr 裏文件裏顯示三個數字 [root@localhost logs]# cat /proc/sys/fs/file-nr 2112

InfiniBand 技術及其在 Linux 系統配置簡介

前言 隨著伺服器處理速度的不斷加快,使用者對提升網路傳輸速度的需求也越來越緊迫,傳統意義上的輸入 / 輸出技術, 如 PCI、以太等,已經無法滿足這種需求。如何更為有效的提高資料傳輸速度,增加有效頻寬成為擺在人們面前必須解決的一個重大問題。 InfiniBand 標準就是在這種情況下應運而生的,它在很大

Linux系統MySQL數據庫“主從”配置

linux mysql數據庫主從配置 MySQL數據庫“主從”配置一、配置概述: 在Linux操作系統中配置MySQL數據庫的主從復制是很重要的,為什麽這樣說呢!是因為在你搭建一個服務器以後你配置了2臺數據庫,一主一從。2臺數據庫配置好以後,當其中一臺數據庫被攻擊以後,你被攻擊的這臺數據庫的數據

基於windows系統visual studio2017的dlib庫詳細配置安裝流程

平臺 學習 mpi 好的 運行 安裝 說明文 完成 page dlib庫是一個非常強大的開源庫,有詳細的說明文檔和c++代碼,也提供了一些和python的接口,但是安裝和配置的過程略有些麻煩,網上有一些相關教程,但是大都零零星星不全面。筆者親自把所有的坑都踩了一遍,整理出了

在Mac系統安裝及配置Apache Tomcat

class 安裝 配置 span pat body 網址 cat 驗證 1.下載Tomcat http://tomcat.apache.org/download-80.cgi .tar.gz結尾和zip均可 2:解壓至想要的文件下 3:配置(註:輸入路徑自定) 使用終端

AIX系統網卡的查看及配置命令

AIX系統中網卡的查看及配置命令[導讀]AIX系統中網卡的查看及配置命令 在AIX中,網卡是用ent開頭來表示的,一個網卡在系統中實際上可以看到兩個設備接口,en開頭的是Ethernet II標準的,et開頭的是IEEE 802.3標準的。以太網的幀有兩種標準:Ethernet II(或者叫Standard

分布式系統處理參數配置的 4 種方案

自己 轉載 自己的 管理 profile tac 配置文件 配置信息 setprop 一個系統中包含有各種各樣的配置信息,如一個日誌文件需要配置以下幾個信息。 日誌文件生成主目錄 日誌文件名稱,不同的日誌級別對應不同的文件 當前日誌級別 還有其他各種業務參數、系統參數等

RocketMQ中介軟體訊息佇列在Maven專案配置使用操作 (分散式釋出訂閱訊息系統)

一、專案引用 <dependency>     <groupId>com.foriseland.fjf.mq</groupId>     <artifactI

Kafka-API中介軟體MQ訊息佇列在Maven專案配置使用操作 (分散式釋出訂閱訊息系統)

一、 Maven依賴 <dependency> <groupId>com.foriseland.fjf.mq</groupId> <artifactId>fjf-mq-kafka</artifactId> &

分散式系統處理引數配置的 4 種方案

一個系統中包含有各種各樣的配置資訊,如一個日誌檔案需要配置以下幾個資訊。 日誌檔案生成主目錄 日誌檔名稱,不同的日誌級別對應不同的檔案 當前日誌級別 還有其他各種業務引數、系統引數等,大多單一系統是直接把這些配置寫死在配置檔案中,當部署到測試、生產環境就再修

linux的dns叢集配置

1.什麼是叢集? 答:叢集(cluster)技術是一種較新的技術,通過叢集技術,可以在付出較低成本的情況下獲得在效能、可靠性、靈活性方面的相對較高的收益,其任務排程則是集群系統中的核心技術。 叢集是一組相互獨立的、通過高速網路互聯的計算機,它們構成了一個組,並以單一系統的模式加以管理。一個客