最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker搭建RabbitMQ集群的方法步驟

 更新時(shí)間:2022年01月17日 09:07:24   作者:萬(wàn)里顧—程  
本文主要介紹了Docker搭建RabbitMQ集群的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

集群模式介紹

RabbitMQ集群模式有兩種:普通模式和鏡像模式

  • 普通模式:默認(rèn)模式,多個(gè)節(jié)點(diǎn)組成的普通集群,消息隨機(jī)發(fā)送到其中一個(gè)節(jié)點(diǎn)的隊(duì)列上,其他節(jié)點(diǎn)僅保留元數(shù)據(jù),各個(gè)節(jié)點(diǎn)僅有相同的元數(shù)據(jù),即隊(duì)列結(jié)構(gòu)、交換器結(jié)構(gòu)、交換器與隊(duì)列綁定關(guān)系、vhost。消費(fèi)者消費(fèi)消息時(shí),會(huì)從各個(gè)節(jié)點(diǎn)拉取消息,如果保存消息的節(jié)點(diǎn)故障,則無(wú)法消費(fèi)消息,如果做了消息持久化,那么得等該節(jié)點(diǎn)恢復(fù),然后才可被消費(fèi);如果沒(méi)有持久化的話(huà),就會(huì)產(chǎn)生消息丟失的現(xiàn)象。
  • 鏡像模式:它是在普通模式的基礎(chǔ)上,把需要的隊(duì)列做成鏡像隊(duì)列,存在于多個(gè)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)高可用(HA)。該模式解決了上述問(wèn)題,Broker會(huì)主動(dòng)地將消息實(shí)體在各鏡像節(jié)點(diǎn)間同步,在consumer取數(shù)據(jù)時(shí)無(wú)需臨時(shí)拉取。該模式帶來(lái)的副作用也很明顯,除了降低系統(tǒng)性能外,如果鏡像隊(duì)列數(shù)量過(guò)多,加之大量的消息進(jìn)入,集群內(nèi)部的網(wǎng)絡(luò)帶寬將會(huì)被大量消耗。通常地,對(duì)可靠性要求較高的場(chǎng)景建議采用鏡像模式。

1、普通集群的搭建

1.1、普通集群架構(gòu)介紹

架構(gòu)圖

在這里插入圖片描述

1.2、環(huán)境準(zhǔn)備

拉取RabbitMQ鏡像

docker pull rabbitmq:3.7-management

在這里插入圖片描述

創(chuàng)建并運(yùn)行三個(gè)RabbitMQ容器節(jié)點(diǎn),一主兩從

命令如下:

#rabbitmqCluster01 主節(jié)點(diǎn)
docker run -d --hostname rabbitmq01 --name rabbitmqCluster01 -v `pwd`/rabbitmq01:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.7-management

#rabbitmqCluster02 從節(jié)點(diǎn)
docker run -d --hostname rabbitmq02 --name rabbitmqCluster02 -v `pwd`/rabbitmq02:/var/lib/rabbitmq -p 7002:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie'  --link rabbitmqCluster01:rabbitmq01 rabbitmq:3.7-management

#rabbitmqCluster03 從節(jié)點(diǎn)
docker run -d --hostname rabbitmq03 --name rabbitmqCluster03 -v `pwd`/rabbitmq03:/var/lib/rabbitmq -p 8002:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie'  --link rabbitmqCluster01:rabbitmq01 --link rabbitmqCluster02:rabbitmq02  rabbitmq:3.7-management

-d 后臺(tái)運(yùn)行容器;

–name 指定容器名;

-p 指定服務(wù)運(yùn)行的端口(5672:應(yīng)用訪(fǎng)問(wèn)端口;15672:控制臺(tái)Web端口號(hào)),控制臺(tái)端口用于管理rabbitmq,應(yīng)用訪(fǎng)問(wèn)端口號(hào)為rabbitclient等應(yīng)用訪(fǎng)問(wèn)。;

-v 映射目錄或文件,pwd 當(dāng)前目錄;

–hostname 主機(jī)名(RabbitMQ的一個(gè)重要注意事項(xiàng)是它根據(jù)所謂的 “節(jié)點(diǎn)名稱(chēng)” 存儲(chǔ)數(shù)據(jù),默認(rèn)為主機(jī)名);

-e 指定環(huán)境變量;(RABBITMQ_DEFAULT_VHOST:默認(rèn)虛擬機(jī)名;RABBITMQ_DEFAULT_USER:默認(rèn)的用戶(hù)名;RABBITMQ_DEFAULT_PASS:默認(rèn)用戶(hù)名的密碼,RABBITMQ_ERLANG_COOKIE 節(jié)點(diǎn)認(rèn)證作用,部署集成時(shí) 需要同步該值)

–link 用于容器的鏈接

查看運(yùn)行中的三個(gè)RabbitMQ容器:

在這里插入圖片描述

登錄 RabbitMQ 控制臺(tái)界面:

rabbitmq01 節(jié)點(diǎn):

在這里插入圖片描述

rabbitmq02 節(jié)點(diǎn):

在這里插入圖片描述

rrabbitmq03 節(jié)點(diǎn)

在這里插入圖片描述

1.3、集群搭建

將rabbitmqCluster02 節(jié)點(diǎn)和 rabbitmqCluster03 節(jié)點(diǎn)加入 rabbitmqCluster01 創(chuàng)建集群

進(jìn)入 rabbitmqCluster02 節(jié)點(diǎn)和 rabbitmqCluster03 節(jié)點(diǎn),在兩個(gè)節(jié)點(diǎn)分別執(zhí)行一下加入集群的命令:

rabbitmqctl stop_app

rabbitmqctl reset
#rabbitmq01為rabbitmqCluster01容器中的hostname
rabbitmqctl join_cluster --ram rabbit@rabbitmq01

rabbitmqctl start_app

rabbitmqCluster02 節(jié)點(diǎn):

在這里插入圖片描述

rabbitmq-slave1 節(jié)點(diǎn):

在這里插入圖片描述

執(zhí)行完后在任意節(jié)點(diǎn)查看集群狀態(tài):

rabbitmqctl cluster_status

如果出現(xiàn)如下顯示,集群搭建成功:

在這里插入圖片描述

之后我們?cè)谥鞴?jié)點(diǎn)的web管理頁(yè)可以看到兩個(gè)從節(jié)點(diǎn)了:

在這里插入圖片描述

2、鏡像集群的搭建

鏡像集群的結(jié)構(gòu)圖

在這里插入圖片描述

2.1、配置鏡像集群的策略

1、使用命令配置策略:

rabbitmqctl set_policy [-p Vhost] [--priority <priority>] [--apply-to <apply-to>] Name Pattern Definition

參數(shù)說(shuō)明:

-p Vhost: 可選參數(shù),針對(duì)指定 vhost 下的 queue 進(jìn)行設(shè)置

Name: policy 的名稱(chēng)

Pattern: queue 的匹配模式(正則表達(dá)式)

Definition:鏡像定義,包括三個(gè)部分 ha-mode, ha-params, ha-sync-mode

ha-mode:指明鏡像隊(duì)列的模式,有效值為 all/exactly/nodes

all:表示在集群中所有的節(jié)點(diǎn)上進(jìn)行鏡像

exactly:表示在指定個(gè)數(shù)的節(jié)點(diǎn)上進(jìn)行鏡像,節(jié)點(diǎn)的個(gè)數(shù)由 ha-params 指定

nodes:表示在指定的節(jié)點(diǎn)上進(jìn)行鏡像,節(jié)點(diǎn)名稱(chēng)通過(guò) ha-params 指定

ha-params:作為參數(shù),為 ha-mode 的補(bǔ)充

ha-sync-mode:進(jìn)行隊(duì)列中消息的同步方式,有效值為 automatic 和 manual

pririty:可選參數(shù),policy的優(yōu)先級(jí)

在任意節(jié)點(diǎn)上添加策略:

#^hello 匹配hello開(kāi)頭的隊(duì)列
rabbitmqctl set_policy ha-all "^hello" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

在所有節(jié)點(diǎn)的以hello開(kāi)頭的隊(duì)列上都添加了策略:以后當(dāng)主節(jié)點(diǎn)宕機(jī)時(shí),hello隊(duì)列里未消費(fèi)的消息也不會(huì)丟失,會(huì)復(fù)制到其他節(jié)點(diǎn)上。

在這里插入圖片描述

刪除策略:

#rabbitmqctl clear_policy 策略名稱(chēng)
rabbitmqctl clear_policy ha-all

2、管理界面配置策略

登錄 rabbitmq 管理頁(yè)面 ——> Admin ——> Policies ——> Add / update a policy

在這里插入圖片描述

name:策略名稱(chēng)

Pattern:^匹配符,只有一個(gè)^代表匹配所有。^message指同步“message”開(kāi)頭的隊(duì)列名稱(chēng)

Definition:ha-mode=all 為匹配類(lèi)型,分為3種模式:all(表示所有的queue)

Priority:優(yōu)先級(jí),首先根據(jù)priority排序,值越大的優(yōu)先級(jí)越高;相同priority則根據(jù)創(chuàng)建時(shí)間排序,越晚創(chuàng)建的優(yōu)先級(jí)越高。

Operator Policy 和 User Policy 的區(qū)別:

  • Operator Policy 是給服務(wù)提供商或公司基礎(chǔ)設(shè)施部門(mén)用來(lái)設(shè)置某些需要強(qiáng)制執(zhí)行的通用規(guī)則
  • User Policy 是給業(yè)務(wù)應(yīng)用用來(lái)設(shè)置的規(guī)則

到此這篇關(guān)于Docker搭建RabbitMQ集群的方法步驟的文章就介紹到這了,更多相關(guān)Docker搭建RabbitMQ集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker容器中的OpenCV如何輕松構(gòu)建可移植的計(jì)算機(jī)視覺(jué)環(huán)境

    Docker容器中的OpenCV如何輕松構(gòu)建可移植的計(jì)算機(jī)視覺(jué)環(huán)境

    計(jì)算機(jī)視覺(jué)是一門(mén)涉及圖像和視頻處理的領(lǐng)域,可以應(yīng)用于目標(biāo)檢測(cè)、圖像識(shí)別、人臉識(shí)別等各種任務(wù),本文給大家介紹Docker容器中的OpenCV如何輕松構(gòu)建可移植的計(jì)算機(jī)視覺(jué)環(huán)境,感興趣的朋友一起看看吧
    2023-12-12
  • 修改Docker鏡像(images)的存儲(chǔ)路徑的多種實(shí)現(xiàn)方式

    修改Docker鏡像(images)的存儲(chǔ)路徑的多種實(shí)現(xiàn)方式

    本文介紹了如何修改Docker數(shù)據(jù)根目錄以解決磁盤(pán)空間不足或希望使用更大/更快磁盤(pán)的問(wèn)題,推薦通過(guò)修改daemon.json配置來(lái)實(shí)現(xiàn),并提供了詳細(xì)的步驟,需要的朋友可以參考下
    2026-01-01
  • Jenkins?+?Docker完整部署指南(附詳細(xì)步驟)

    Jenkins?+?Docker完整部署指南(附詳細(xì)步驟)

    Jenkins作為目前持續(xù)集成中使用較為廣泛的工具,在實(shí)際生產(chǎn)過(guò)程中通過(guò)結(jié)合眾多的插件,從而實(shí)現(xiàn)工程的持續(xù)構(gòu)建、持續(xù)部署,這篇文章主要介紹了Jenkins?+?Docker完整部署的相關(guān)資料,需要的朋友可以參考下
    2026-01-01
  • Docker部署nnunetv2的實(shí)現(xiàn)步驟

    Docker部署nnunetv2的實(shí)現(xiàn)步驟

    本文主要介紹了Docker部署nnunetv2的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 如何通過(guò)Jenkins定期清理為None的鏡像詳解

    如何通過(guò)Jenkins定期清理為None的鏡像詳解

    這篇文章主要給大家介紹了關(guān)于如何通過(guò)Jenkins定期清理為None的鏡像的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • docker初識(shí)之五分鐘認(rèn)識(shí)docker

    docker初識(shí)之五分鐘認(rèn)識(shí)docker

    Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。通過(guò)本文學(xué)習(xí)可以快速了解docker,本文介紹的非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-10-10
  • docker常用命令操作方法

    docker常用命令操作方法

    最近幾天都在研究docker,今天給大家分享docker一些常用的命令,需要的朋友可以參考下
    2017-11-11
  • Docker 清理的常用方法及問(wèn)題

    Docker 清理的常用方法及問(wèn)題

    這篇文章主要介紹了Docker 清理的常用方法及問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Docker?部署分布式搜索引擎?Elastic?Search的詳細(xì)過(guò)程

    Docker?部署分布式搜索引擎?Elastic?Search的詳細(xì)過(guò)程

    Elasticsearch是一款非常強(qiáng)大的開(kāi)源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容,這篇文章主要介紹了Docker?部署分布式搜索引擎?Elastic?Search,需要的朋友可以參考下
    2023-02-02
  • 通過(guò)Docker?Compose部署MySQL的詳細(xì)教程

    通過(guò)Docker?Compose部署MySQL的詳細(xì)教程

    Docker?Compose?作為?Docker?官方的容器編排工具,為?MySQL?數(shù)據(jù)庫(kù)部署帶來(lái)了顯著優(yōu)勢(shì),下面小編就來(lái)為大家詳細(xì)介紹一下具體的流程吧
    2025-03-03

最新評(píng)論

南华县| 荔波县| 罗定市| 海宁市| 临朐县| 普兰店市| 政和县| 黔东| 镇康县| 安庆市| 德令哈市| 黔南| 扎赉特旗| 晴隆县| 红河县| 新和县| 九寨沟县| 仁寿县| 铜梁县| 德令哈市| 无锡市| 石首市| 阿克| 尚志市| 文山县| 南澳县| 泸西县| 湘潭市| 常宁市| 监利县| 滨海县| 康平县| 牟定县| 株洲市| 六安市| 大洼县| 隆德县| 苗栗县| 荆门市| 赞皇县| 西畴县|