使用Rabbitmq作為MQTT Broker搭建高可用集群方案(Windows平臺)

一. 集群搭建 參照這里

二. 開啟MQTT插件

每臺服務(wù)都需要進(jìn)入rabbitmq控制臺, 執(zhí)行下面命令

// 開啟mqtt支持
rabbitmq-plugins enable rabbitmq_mqtt
rabbitmq-plugins enable rabbitmq_web_mqtt
// 開啟web管理端支持(這一步一般在集群搭建前都設(shè)置成了)
rabbitmq-plugins enable rabbitmq_management

路徑: D:\A1_application\Rabbitmq\rabbitmq_server-3.12.11\sbin>, 要以管理員身份運(yùn)行

三. 配置MQTT協(xié)議的Nginx代理, 參照這里

四. 設(shè)置鏡像策略

為配合鏡像隊列使用, 客戶端連接需要設(shè)置 WithCleanSession(false), 并且以Qo1的策略訂閱
C#客戶端代碼 參照這里

  1. 進(jìn)入任意一臺服務(wù)管理界面選擇Admin > Policies, 創(chuàng)建User Policies
  • Name: ha-all (隨便起)
  • Pattern: ^ (匹配哪些對象, ^ 匹配所有, 其他寫法自己查閱官方文檔)
  • Apply to: Exchanges and queues (應(yīng)用到哪些對象)
  • Definition:
    • ha-mode:all (指明鏡像隊列的模式, 有效值為 all/exactly/nodes)
    • ha-sync-mode:automatic (進(jìn)行隊列中消息的同步方式助琐,有效值為automatic和manual)


      截圖
  1. 填寫完成點擊提交, 策略會自動同步到其他節(jié)點
  2. 這時候進(jìn)入交換機(jī)和隊列界面, 會看到交換機(jī)或隊列表格 Features 列都有個 ha-all, Node列后面有個 +2


    截圖

ha-all意味著當(dāng)前交換機(jī)或者隊列數(shù)據(jù)都會復(fù)制到集群的其他服務(wù)上, 其中一臺掛了或者網(wǎng)絡(luò)斷了, 客戶端連上其他服務(wù)節(jié)點可以繼續(xù)消費, 數(shù)據(jù)不會丟失
+2 意味著數(shù)據(jù)會被復(fù)制到其他幾臺服務(wù)上, 數(shù)字取決于在線集群的服務(wù)數(shù)量
開啟鏡像模式意味著RabbitMQ服務(wù)開銷增大, 因為任何一條消息都需要復(fù)制到其他服務(wù)上, 集群越大, 開銷越大. 可以通過調(diào)整第1步策略設(shè)置消息的復(fù)制范圍.

五. 添加配置文件

  1. 進(jìn)入安裝目錄\rabbitmq_server-3.12.11\etc, 創(chuàng)建rabbitmq.conf, 配置內(nèi)容如下:
# 設(shè)置queue類型
# mqtt.durable_queue_type = quorum
# 設(shè)置默認(rèn)監(jiān)聽端口
# mqtt.listeners.tcp.default = 1883
# 設(shè)置vhost
# mqtt.vhost            = /
# 設(shè)置交換機(jī)
# mqtt.exchange         = amq.topic

# 是否允許匿名訪問
# mqtt.allow_anonymous  = true
# 默認(rèn)用戶名密碼
# mqtt.default_user     = guest
# mqtt.default_pass     = guest
# ...

# 以上配置按需開啟, 不知道怎么用就不要開啟, 全部使用默認(rèn)
  1. 把配置文件路勁配到系統(tǒng)環(huán)境變量, 告訴RabbitMQ去讀取我們上一步添加的配置文件
變量名: RABBITMQ_CONFIG_FILE
變量值: D:\A1_application\Rabbitmq\rabbitmq_server-3.12.11\etc\rabbitmq
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胀茵,更是在濱河造成了極大的恐慌埃唯,老刑警劉巖搁痛,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渠概,死亡現(xiàn)場離奇詭異马绝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)束凑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門晒旅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汪诉,你說我怎么就攤上這事废恋。” “怎么了扒寄?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵鱼鼓,是天一觀的道長。 經(jīng)常有香客問我该编,道長迄本,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任上渴,我火速辦了婚禮岸梨,結(jié)果婚禮上喜颁,老公的妹妹穿的比我還像新娘。我一直安慰自己曹阔,他們只是感情好半开,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赃份,像睡著了一般寂拆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抓韩,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天纠永,我揣著相機(jī)與錄音,去河邊找鬼谒拴。 笑死尝江,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的英上。 我是一名探鬼主播炭序,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苍日!你這毒婦竟也來了惭聂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤相恃,失蹤者是張志新(化名)和其女友劉穎辜纲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拦耐,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡耕腾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了揩魂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幽邓。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖火脉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柒啤,我是刑警寧澤倦挂,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站担巩,受9級特大地震影響方援,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涛癌,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一犯戏、第九天 我趴在偏房一處隱蔽的房頂上張望送火。 院中可真熱鬧,春花似錦先匪、人聲如沸种吸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坚俗。三九已至,卻和暖如春岸裙,著一層夾襖步出監(jiān)牢的瞬間猖败,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工降允, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留恩闻,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓剧董,卻偏偏與公主長得像判呕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子送滞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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