rabbitmq 在 docker 下的集群設置

  • 本文實現(xiàn)在一個docker宿主機的環(huán)境下設置 rabbitmq 集群

RabbitMQ是基于高級消息隊列協(xié)議(AMQP)實現(xiàn)的開源消息代理軟件罐氨,主要提供消息隊列服務壮不。

首先 pull rabbitmq 的docker鏡像

docker pull rabbitmq:management

首先我們要是設置docker 的網(wǎng)絡環(huán)境, 以便于容器之間進行通訊到逊, 這里我們使用 docker network 來進行網(wǎng)絡設置,
現(xiàn)在創(chuàng)建一個網(wǎng)絡名為my_net且driver為bridge的網(wǎng)絡:(默認創(chuàng)建的就是bridge)

docker network create my_net
docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
da6f92e9cb4f        bridge              bridge              local
1ce44ae321b6        host                host                local
f67c52c15141        my_net              bridge              local
7f8fe50b3756        none                null                local

網(wǎng)絡環(huán)境設置好之后,就開始準備創(chuàng)建容器了, 在創(chuàng)建之前有幾點需要注意的地方

  1. 如果要做集群的話 一定要注意erlang 的 cookie的一致性译仗, 使用 rabbitmq鏡像里面RABBITMQ_ERLANG_COOKIE 這個來進行設置 (重要)
  2. 設置每個rabbitmq 的節(jié)點名稱 使用 RABBITMQ_NODENAME 來設置

所以我們的docker 容器的生成就是這樣的:
在同一個RabbitMQ集群中,節(jié)點之間并沒有主從之分官觅,所有節(jié)點會同步相同的隊列結(jié)構(gòu)

某種意義上的主機

docker run -d --name=rabbitmq_master -e RABBITMQ_ERLANG_COOKIE=myerlangcookie -e RABBITMQ_NODENAME=mqmaster -p 5672:5672 -p 4369:4369 -p 25672 :25672 -p 15672:15672 --network my_net --network-alias network_mqmaster rabbitmq:management

某種意義上的從機 (留了端口的)

docker run -d --name=rabbitmq_slave1 -e RABBITMQ_ERLANG_COOKIE=myerlangcookie -e RABBITMQ_NODENAME=mqslave1 -p 5673:5672 -p 4370:7369 -p 25673 :25672 -p 15673:15672 --network my_net --network-alias network_mqslave1 rabbitmq:management

某種意義上的從機 (沒有留端口的)

docker run -d --name=rabbitmq_slave2 -e RABBITMQ_ERLANG_COOKIE=myerlangcookie -e RABBITMQ_NODENAME=mqslave2 --network my_net --network-alias network_mqslave2 rabbitmq:management

進入到rabbitmq_master當中 使用 rabbitmqctl cluster_status 查看集群狀態(tài)

docker exec -it rabbitmq_master bash

cd sbin
rabbitmqctl cluster_status

Cluster status of node mqmaster@28c2418baba1 ...
[{nodes,[{disc,[mqmaster@28c2418baba1]}]},
 {running_nodes,[mqmaster@28c2418baba1]},
 {cluster_name,<<"mqmaster@28c2418baba1">>},
 {partitions,[]},
 {alarms,[{mqmaster@28c2418baba1,[]}]}]

看到 nodes 里面 只有當前我們的這個節(jié)點并沒有其他的節(jié)點
現(xiàn)在我們進入到rabbitmq_slave1中配置加入到集群當中,

docker exec -it rabbitmq_slave1 bash
cd sbin
# 再添加集群之前首先要 關(guān)閉當前的節(jié)點
rabbitmqctl stop_app
# 開始添加到 集群當中, @前面是 節(jié)點名稱纵菌, 后面是 host, host 可以在 查看集群狀態(tài)的時候獲得
#--ram選項表示節(jié)點以內(nèi)存存儲方式運行休涤,讀寫速度快咱圆,重啟后內(nèi)容會丟失;不加--ram選項,節(jié)點則以磁盤存儲方式運行序苏,
 雖然讀寫速度慢手幢,但是內(nèi)容一般可以持久保持

rabbitmqctl join_cluster --ram mqmaster@28c2418baba1

Clustering node mqslave1@0a038c6ae449 with mqmaster@28c2418baba1

#重新開啟節(jié)點
rabbitmqctl start_app

重新回到 rabbitmq_master容器里面查看集群狀態(tài)

root@28c2418baba1:/sbin# rabbitmqctl cluster_status
Cluster status of node mqmaster@28c2418baba1 ...
[{nodes,[{disc,[mqmaster@28c2418baba1]},
         {ram,[mqslave2@ddb963c55357,mqslave1@0a038c6ae449]}]},
 {running_nodes,[mqslave2@ddb963c55357,mqslave1@0a038c6ae449,
                 mqmaster@28c2418baba1]},
 {cluster_name,<<"mqmaster@28c2418baba1">>},
 {partitions,[]},
 {alarms,[{mqslave2@ddb963c55357,[]},
          {mqslave1@0a038c6ae449,[]},
          {mqmaster@28c2418baba1,[]}]}]

說明集群正常, 創(chuàng)建隊列杠览, 發(fā)送數(shù)據(jù)測試

root@28c2418baba1:/sbin# rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
hello   2

每個節(jié)點里面數(shù)據(jù)正常弯菊,
一些運維操作
停止某個指定的節(jié)點,比如停止第2個節(jié)點:
./sbin/rabbitmqctl -n rabbitmq_slave1 stop
查看節(jié)點3的集群狀態(tài):

./sbin/rabbitmqctl -n rabbitmq_slave2 cluster_status

附一張截圖


QQ截圖20181024171009.png

參考:
docker network https://www.cnblogs.com/jsonhc/p/7823286.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踱阿,一起剝皮案震驚了整個濱河市管钳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌软舌,老刑警劉巖才漆,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異佛点,居然都是意外死亡醇滥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門超营,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸳玩,“玉大人,你說我怎么就攤上這事演闭〔桓” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵米碰,是天一觀的道長窝革。 經(jīng)常有香客問我,道長吕座,這世上最難降的妖魔是什么虐译? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮吴趴,結(jié)果婚禮上漆诽,老公的妹妹穿的比我還像新娘。我一直安慰自己锣枝,他們只是感情好厢拭,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惊橱,像睡著了一般蚪腐。 火紅的嫁衣襯著肌膚如雪箭昵。 梳的紋絲不亂的頭發(fā)上税朴,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼正林。 笑死泡一,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的觅廓。 我是一名探鬼主播鼻忠,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杈绸!你這毒婦竟也來了帖蔓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瞳脓,失蹤者是張志新(化名)和其女友劉穎塑娇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劫侧,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡埋酬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烧栋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片写妥。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖审姓,靈堂內(nèi)的尸體忽然破棺而出珍特,到底是詐尸還是另有隱情,我是刑警寧澤邑跪,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布次坡,位于F島的核電站,受9級特大地震影響画畅,放射性物質(zhì)發(fā)生泄漏砸琅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一轴踱、第九天 我趴在偏房一處隱蔽的房頂上張望症脂。 院中可真熱鬧,春花似錦淫僻、人聲如沸诱篷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棕所。三九已至,卻和暖如春悯辙,著一層夾襖步出監(jiān)牢的瞬間琳省,已是汗流浹背迎吵。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留针贬,地道東北人击费。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像桦他,于是被迫代替她去往敵國和親蔫巩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 整體架構(gòu) 部署步驟 基于 Docker 基本概念內(nèi)存節(jié)點只保存狀態(tài)到內(nèi)存快压,例外情況是:持久的 queue 的內(nèi)容將...
    mvictor閱讀 12,756評論 5 30
  • 什么叫消息隊列圆仔? 消息(Message)是指在應用間傳送的數(shù)據(jù)。消息可以非常簡單蔫劣,比如只包含文本字符串荧缘,也可以更復...
    Agile_dev閱讀 2,373評論 0 24
  • 你不知道的RabbitMQ集群架構(gòu)全解 前言 本文將系統(tǒng)的介紹一下RabbitMQ集群架構(gòu)的特點、異常處理拦宣、搭建和...
    Java中文社群_老王閱讀 3,975評論 1 50
  • 關(guān)于消息隊列截粗,從前年開始斷斷續(xù)續(xù)看了些資料,想寫很久了鸵隧,但一直沒騰出空绸罗,近來分別碰到幾個朋友聊這塊的技術(shù)選型,是時...
    中v中閱讀 1,970評論 0 20
  • 士為知已報君仇豆瘫, 不惜吞炭毀真容珊蟀。 飛身對袍三怒劍, 血濺石橋感千秋外驱!
    醫(yī)心小作閱讀 308評論 0 2