国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

這篇具有很好參考價(jià)值的文章主要介紹了使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

RabbitMQ 是一個(gè)功能強(qiáng)大的開(kāi)源消息隊(duì)列系統(tǒng),它實(shí)現(xiàn)了高效的消息通信和異步處理。

本文主要介紹其基于 Docker-Compose 的部署安裝和一些使用的經(jīng)驗(yàn)。

特點(diǎn)

  • 成熟,穩(wěn)定
  • 消息持久化
  • 靈活的消息路由
  • 高性能,高可用性,可擴(kuò)展性高
  • 支持插件系統(tǒng):RabbitMQ 具有豐富的插件系統(tǒng),可以通過(guò)安裝插件來(lái)擴(kuò)展其功能,例如管理界面、消息追蹤、消息轉(zhuǎn)換等。
  • 官方提供了 .NET/Java 的 SDK

使用情況

  • 項(xiàng)目中用于日志記錄,消息發(fā)送,數(shù)據(jù)同步等,穩(wěn)定可靠
  • 業(yè)務(wù)模塊的初始化,數(shù)據(jù)導(dǎo)入異步處理
  • 做好冪等處理,不同場(chǎng)景使用不同的確認(rèn)方式,防止消息的重復(fù)消費(fèi)
  • RabbitMQ 默認(rèn)不支持延遲消息,使用延遲消息插件實(shí)現(xiàn)即可(有局限,僅支持最多一兩天的延遲消息
  • 使用 .NET SDK:RabbitMQ.Client,后面再分享二次封裝使用

實(shí)踐

使用 Docker Compose V2 安裝 rabbitmq v3.12.6

準(zhǔn)備

  • 當(dāng)前版本:v3.12.6
  • 使用鏡像:rabbitmq:3.12.6-management (帶 web 管理界面)
  • 默認(rèn)端口:5672:應(yīng)用連接端口 15672:web 控制臺(tái)

使用 Docker Compose 安裝

本篇文章基于 Docker V24 及 Docker Compose V2,安裝可以參考之前的文章

配置說(shuō)明

  • 固定了鏡像版本:rabbitmq:3.12.6-management
  • 指定的主機(jī)名:rabbitserver
  • 指定虛擬機(jī)名稱:admin_vhost
  • 指定賬號(hào)密碼: root devops666
  • 指定端口:5672:應(yīng)用連接端口 15672:web 管理界面
  • 掛載數(shù)據(jù)目錄:./data:/var/lib/rabbitmq
  • 掛載額外的插件目錄:./myplugins:/myplugins RabbitMQ 容器中默認(rèn)插件目錄是 /plugins 不推薦掛載
  • 將 ./myplugins 掛載到容器的,并將其加入插件查找的目錄中:RABBITMQ_PLUGINS_DIR: '/plugins:/myplugins'
  • 指定網(wǎng)絡(luò):devopsnetwork (docker network create devopsnetwork)

配置文件 compose.yml

  • 準(zhǔn)備好 compose.yml 拷貝到服務(wù)器

  • 然后運(yùn)行docker compose up -d即可

     version: '3.1'
     services:
       rabbitmq:
         image: rabbitmq:3.12.6-management
         container_name: rabbitmq_3_12
         restart: always
         # 節(jié)點(diǎn)名 rabbit@rabbitserver,不然會(huì)去容器ID
         hostname: rabbitserver
         environment:
           # 默認(rèn)虛擬機(jī)名
           RABBITMQ_DEFAULT_VHOST: admin_vhost
           # 用戶名
           RABBITMQ_DEFAULT_USER: root
           # 密碼
           RABBITMQ_DEFAULT_PASS: devops666
           # 指定自定義插件目錄
           RABBITMQ_PLUGINS_DIR: '/plugins:/myplugins'
         ports:
           - "5672:5672"
           - "15672:15672"
         volumes:
           - ./data:/var/lib/rabbitmq
           - ./myplugins:/myplugins
         networks:
           - devopsnetwork
    
     networks:
       devopsnetwork:
         external: true
     ```
    
    

部署成功

部署機(jī)器IP:192.168.123.214

使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

安裝插件:延遲消息插件

注意:插件消息發(fā)布延遲只支持到 數(shù)秒、分鐘或數(shù)小時(shí),最多一兩天,注意?。?!

原文: This plugin was designed for delaying message publishing for a number of seconds, minutes, or hours。 A day or two at most.

! ! ! 前面的 compose.yml 默認(rèn)是將。/myplugins 掛載到容器的,并指定了多個(gè)插件目錄 系統(tǒng):/plugins 自己添加:/myplugins ,優(yōu)化了流程,安裝插件不需要復(fù)制文件和重啟容器

  1. 需要先下載插件:rabbitmq_delayed_message_exchange-3.12.0.ez,下載對(duì)應(yīng)版本的 。ez 文件:Github Releases

  2. 將下載的插件文件放到 。/myplugins 文件夾 前面將 myplugins 掛載到了容器

  3. 連接容器執(zhí)行啟用插件:docker exec -it rabbitmq_3_12 /bin/bash -c "rabbitmq-plugins enable rabbitmq_delayed_message_exchange"

  4. 因?yàn)橐呀?jīng)掛載 myplugins 和設(shè)置為插件目錄了 會(huì)自己去找 /plugins 和/myplugins 對(duì)應(yīng)的 ez 文件以安裝

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

  5. 啟用成功,可在 Exchanges 頁(yè)查看

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

踩過(guò)的坑

  • 根據(jù)上文配置來(lái)不會(huì)再出現(xiàn)下面的問(wèn)題,遇到一樣的問(wèn)題可參考

  • 延遲消息僅支持最多一兩天的延遲消息,項(xiàng)目中有個(gè)定時(shí)發(fā)消息的功能,設(shè)置的適合時(shí)間設(shè)置超過(guò)閾值無(wú)法被消費(fèi) 說(shuō)明

  • 不要掛載/plugins 插件目錄,可以用RABBITMQ_PLUGINS_DIR: '/plugins:/myplugins'來(lái)指定多個(gè)目錄,這樣只需要執(zhí)行 文檔

  • 不指定 hostname 節(jié)點(diǎn)名稱會(huì)是容器 Id

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

  • 使用了 rabbitmq:3.x-management 鏡像(具有 web 管理頁(yè)面的功能)但是掛載了空的插件目錄會(huì)報(bào)錯(cuò):{"init terminating in do_boot",{undef,[{rabbit,boot,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

  • Admin 頁(yè)面提示報(bào)錯(cuò):升級(jí)版本吧 issues 我開(kāi)始用的 3.9.29-management(tags 列表排序 3.9 排在前面,( ╯□╰ )),報(bào)這個(gè)錯(cuò)

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

  • 切換版本前需要經(jīng)。/data 數(shù)據(jù)清空,不然啟動(dòng)不起來(lái)

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

  • Exchanges 頁(yè)面報(bào)錯(cuò): 我把版本換成 3.12.6-management 后報(bào)了這個(gè)錯(cuò),沒(méi)有退出登錄,只需 Ctrl+F5,重新登錄下就好

    使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄

使用

.NET SDK

官方:RabbitMQ.Client

連接配置

var factory = new ConnectionFactory
{
    HostName = "192.168.123.214",
    Port = 5672,
    VirtualHost = "admin_vhost",
    UserName = "root",
    Password = "devops666",
};

Demo 示例

建了一個(gè) demo 測(cè)試使用 Demo地址 ,后續(xù)二次封裝的時(shí)候再展開(kāi)說(shuō)怎么封裝使用

相關(guān)文檔

  • RabbitMQ 項(xiàng)目倉(cāng)庫(kù)
  • DockerHub 鏡像
  • 官方文檔
  • 延遲消息插件下載
  • .NET SDK 倉(cāng)庫(kù)

后語(yǔ)

安裝還是比較簡(jiǎn)單的,版本選對(duì),更多的是使用時(shí)需要根據(jù)業(yè)務(wù)選擇適合的方案

插件的安裝倒騰了一陣子,研究?jī)?yōu)化了流程文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-738472.html

到了這里,關(guān)于使用 Docker Compose 部署 RabbitMQ 的一些經(jīng)驗(yàn)與踩坑記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【uniapp】原生子窗體subNvue的使用與踩坑

    【uniapp】原生子窗體subNvue的使用與踩坑

    需求 最近接到個(gè)需求, 需要在video組件上彈出彈窗, 也就是覆蓋video這個(gè)原生組件 未播放時(shí), 彈窗可以覆蓋, 但是當(dāng)video播放時(shí), 寫的彈窗就覆蓋不了了 因?yàn)関ideo是原生組件, 層級(jí)非常高, 普通標(biāo)簽是覆蓋不了的, map標(biāo)簽同理 覆蓋原生組件, 官方給出解決辦法一. 使用cover-view標(biāo)簽

    2024年02月13日
    瀏覽(21)
  • USB系列-LibUSB使用指南(1)-Windows下的報(bào)錯(cuò)與踩坑

    USB系列-LibUSB使用指南(1)-Windows下的報(bào)錯(cuò)與踩坑

    時(shí)隔一年再次開(kāi)始撰寫博客,這一年的時(shí)間經(jīng)歷了很多,現(xiàn)在終于穩(wěn)定下來(lái)。以后很長(zhǎng)一段時(shí)間都能夠穩(wěn)定的學(xué)習(xí)和更新。時(shí)間將會(huì)聚焦于USB和PCIe的開(kāi)發(fā)進(jìn)行,能和大家共同進(jìn)步真的很高興。 本篇為USB系列的LibUSB使用指南的第一篇。 USB系列主要圍繞USB的知識(shí)、協(xié)議、開(kāi)發(fā)總

    2024年02月22日
    瀏覽(21)
  • M1Mac 使用 qemu 配置 archlinux 虛擬機(jī)的完整c++開(kāi)發(fā)環(huán)境與踩坑指南

    之前寫了關(guān)于 qemu 安裝 archlinux 的文章, 但是還有一些內(nèi)容沒(méi)得到解決, 比如很多時(shí)候 ssh 連接不成功, 這時(shí)候用圖形界面(默認(rèn)選項(xiàng))的優(yōu)勢(shì)就體現(xiàn)出來(lái)了, 并且如果需要傳輸文件或者需要使用對(duì)外的端口, 僅轉(zhuǎn)發(fā)一個(gè)22端口是不夠的, 最后就是 gdb 調(diào)試的整套環(huán)境的配置, 這些問(wèn)題

    2024年02月06日
    瀏覽(52)
  • 使用 Docker Compose 部署 Docker Registry

    使用 Docker Compose 部署 Docker Registry

    在內(nèi)網(wǎng)環(huán)境中,我們期望能夠在本地共享鏡像。為了解決這一問(wèn)題,Docker Registry成為了我們的救星。Docker Registry是一個(gè)用于存儲(chǔ)和管理Docker鏡像的開(kāi)源工具。通過(guò)在本地部署Docker Registry,您可以輕松地構(gòu)建、存儲(chǔ)和分享自己的Docker鏡像。本文將詳細(xì)介紹如何使用Docker Compose快

    2024年02月02日
    瀏覽(17)
  • docker 搭建php環(huán)境(踩坑經(jīng)驗(yàn)?。。? decoding=
  • 使用docker、docker-compose部署微服務(wù)

    使用docker、docker-compose部署微服務(wù)

    這里已經(jīng)在docker安裝并啟動(dòng)好了Redis、nacos,配置好了“ruoyi-gateway-prod.yml”文件。 注意如果配置文件中有Redis、MySQL、nacos這些的連接信息,需要把IP地址改為服務(wù)器的公網(wǎng)地址或者內(nèi)網(wǎng)地址,不會(huì)連接不到。 我這里以微服務(wù)版若依的網(wǎng)關(guān)服務(wù)為例,上傳到指定目錄。 官方文檔

    2024年02月10日
    瀏覽(26)
  • ThingsBoard使用docker compose集群部署

    ThingsBoard使用docker compose集群部署

    今天我將講解官方文檔說(shuō)的使用docker compose集群部署ThingsBoard,這種部署方式也是目前企業(yè)中常用的形式,希望大家能夠掌握,我不是直接使用官方的鏡像,我是自己拉起代碼,然后自己構(gòu)建鏡像,在傳到服務(wù)器上,使用自己的鏡像來(lái)部署。而且這種部署中間有個(gè)大坑,我也會(huì)

    2024年02月02日
    瀏覽(21)
  • 【Docker】(七)使用docker-compose一鍵部署環(huán)境

    【Docker】(七)使用docker-compose一鍵部署環(huán)境

    本系列文章記錄了從0開(kāi)始學(xué)習(xí)Docker的過(guò)程,Docker系列歷史文章: (一)基本概念與安裝使用 (二)如何使用Docker發(fā)布一個(gè)SpringBoot服務(wù) (三)使用registry遠(yuǎn)程鏡像倉(cāng)庫(kù)管理鏡像 (四)使用volume持久化Docker容器中的Redis數(shù)據(jù) (五)使用bind mounts修改Docker容器中的Nginx配置 (六)

    2024年02月08日
    瀏覽(25)
  • 使用 Docker Compose 部署郵件服務(wù)器

    使用 Docker Compose 部署郵件服務(wù)器

    很多時(shí)候?yàn)榱朔奖悖?我們都直接使用第三方郵箱進(jìn)行收發(fā)郵件。 但第三方郵箱有些要求定期修改密碼,有些限制發(fā)郵箱的次數(shù), 對(duì)于一些個(gè)人和企業(yè)來(lái)說(shuō), 有自己的域名和服務(wù)器為什么不自己搭建一個(gè)郵件服務(wù)器呢?因此, 筆者在這記錄自己學(xué)習(xí)并且搭建郵箱服務(wù)器的步

    2024年04月22日
    瀏覽(19)
  • 使用 docker-compose 部署 Jenkins

    使用 docker-compose 部署 Jenkins

    注:我是在虛擬機(jī)(Ubuntu)上部署了 docker-compose,然后才使用 docker-compose 部署 Jenkins! 關(guān)于如何在 Ubuntu 部署 docker-compose,可以看我其它的文章。 docker_jenkins_compose 目錄下創(chuàng)建 docker-compose.yml 文件: 進(jìn)入 docker-compose.yml 文件: 按下鍵盤上的 i ,進(jìn)入可以編寫的模式。 將下面的

    2024年02月17日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包