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

RabbitMQ 使用教程(看完就會(huì)用了)

這篇具有很好參考價(jià)值的文章主要介紹了RabbitMQ 使用教程(看完就會(huì)用了)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

RabbitMQ 是一種消息隊(duì)列軟件,可以用來實(shí)現(xiàn)分布式系統(tǒng)中的消息傳遞、異步任務(wù)處理、日志收集等功能。它基于 AMQP(Advanced Message Queuing Protocol)協(xié)議,支持多種編程語(yǔ)言和平臺(tái)。

本文將介紹 RabbitMQ 的基本概念和使用方法,包括:

  • RabbitMQ 的基本概念和架構(gòu)
  • 如何安裝和配置 RabbitMQ
  • 如何使用 RabbitMQ 發(fā)送和接收消息
  • 如何使用 RabbitMQ 進(jìn)行消息的確認(rèn)和重試
  • 如何使用 RabbitMQ 實(shí)現(xiàn)發(fā)布訂閱模式和工作隊(duì)列模式

RabbitMQ 的基本概念和架構(gòu)

基本概念

  • 消息(Message):指的是傳遞的信息。消息由消息頭和消息體組成,消息頭包含了一些元數(shù)據(jù),例如消息的路由鍵、消息的優(yōu)先級(jí)等。
  • 消息隊(duì)列(Queue):指的是消息的緩存區(qū)。當(dāng)生產(chǎn)者發(fā)送消息時(shí),消息會(huì)被發(fā)送到消息隊(duì)列中,等待消費(fèi)者消費(fèi)。
  • 交換機(jī)(Exchange):指的是消息的路由中心。當(dāng)消息被發(fā)送到交換機(jī)時(shí),交換機(jī)會(huì)將消息根據(jù)路由鍵發(fā)送到對(duì)應(yīng)的消息隊(duì)列中。
  • 綁定(Binding):指的是交換機(jī)和消息隊(duì)列之間的綁定關(guān)系。綁定規(guī)定了交換機(jī)將消息發(fā)送到哪些消息隊(duì)列中。
  • 路由鍵(Routing Key):指的是消息的路由關(guān)鍵字。交換機(jī)會(huì)根據(jù)路由鍵將消息發(fā)送到對(duì)應(yīng)的消息隊(duì)列中。

架構(gòu)

RabbitMQ 的架構(gòu)分為四個(gè)部分:

  • 生產(chǎn)者(Producer):指的是發(fā)送消息的客戶端。
  • 消息隊(duì)列(Queue):指的是消息的緩存區(qū),用于存儲(chǔ)消息。
  • 交換機(jī)(Exchange):指的是消息的路由中心,用于將消息發(fā)送到對(duì)應(yīng)的消息隊(duì)列中。
  • 消費(fèi)者(Consumer):指的是接收消息的客戶端。

安裝和配置 RabbitMQ

安裝 RabbitMQ

RabbitMQ 的安裝非常簡(jiǎn)單。只需從官方網(wǎng)站 https://www.rabbitmq.com/download.html 下載對(duì)應(yīng)版本的 RabbitMQ 安裝包,然后按照提示進(jìn)行安裝即可。

配置 RabbitMQ

安裝完成后,需要進(jìn)行一些配置工作,以便 RabbitMQ 正常運(yùn)行。具體步驟如下:

  1. 啟動(dòng) RabbitMQ 服務(wù)器。在 Windows 系統(tǒng)下,可以通過 “Start Menu”->“RabbitMQ Server”->“Start RabbitMQ Command Prompt” 打開命令行窗口,然后輸入以下命令:
rabbitmq-server.bat start
  1. 創(chuàng)建管理員賬戶。在命令行窗口中輸入以下命令:
rabbitmqctl add_user admin password

這里將管理員賬戶的用戶名設(shè)置為 “admin”,密碼設(shè)置為 “password”,你可以根據(jù)自己的需要修改。

  1. 授予管理員權(quán)限。在命令行窗口中輸入以下命令:
rabbitmqctl set_user_tags admin administrator

這里將管理員賬戶的標(biāo)簽設(shè)置為 “administrator”,以授予其完整的管理權(quán)限。

  1. 創(chuàng)建虛擬主機(jī)。在命令行窗口中輸入以下命令:
rabbitmqctl add_vhost /my_vhost

這里將創(chuàng)建一個(gè)名為 “my_vhost” 的虛擬主機(jī),你可以根據(jù)自己的需要修改。

  1. 授予虛擬主機(jī)權(quán)限。在命令行窗口中輸入以下命令:
rabbitmqctl set_permissions -p /my_vhost admin ".*" ".*" ".*"

這里將管理員賬戶授予了 “my_vhost” 虛擬主機(jī)的所有權(quán)限。

  1. 啟用 RabbitMQ 管理插件。在命令行窗口中輸入以下命令:
rabbitmq-plugins enable rabbitmq_management

這里啟用了 RabbitMQ 的管理插件,可以通過瀏覽器訪問 http://localhost:15672/ 來進(jìn)行管理。

使用 RabbitMQ 發(fā)送和接收消息

發(fā)送消息

以下是使用 RabbitMQ 發(fā)送消息的基本流程:

  1. 創(chuàng)建 ConnectionFactory 對(duì)象。Connection 是 RabbitMQ 的一個(gè)核心概念,表示與 RabbitMQ 建立的 TCP 連接。ConnectionFactory 是用于創(chuàng)建 Connection 對(duì)象的工廠類。
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setUsername("admin");
factory.setPassword("password");
factory.setVirtualHost("/my_vhost");
  1. 創(chuàng)建 Connection 對(duì)象。這里使用了 ConnectionFactory 的 createConnection() 方法創(chuàng)建 Connection 對(duì)象。
Connection connection = factory.newConnection();
  1. 創(chuàng)建 Channel 對(duì)象。Channel 是 RabbitMQ 的另一個(gè)核心概念,表示通過 Connection 建立的信道。我們可以通過 Channel 對(duì)象來發(fā)送和接收消息。
Channel channel = connection.createChannel();
  1. 聲明隊(duì)列。如果要向一個(gè)不存在的隊(duì)列發(fā)送消息,需要先聲明該隊(duì)列。
String queueName = "hello";
channel.queueDeclare(queueName, false, false, false, null);
  1. 發(fā)送消息。使用 Channel 對(duì)象的 basicPublish() 方法來發(fā)送消息。其中,exchange 參數(shù)表示交換機(jī)的名稱,routingKey 參數(shù)表示消息的路由鍵。
String message = "Hello World!";
channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
  1. 關(guān)閉 Channel 和 Connection。發(fā)送完消息后,需要及時(shí)關(guān)閉 Channel 和 Connection 對(duì)象。
channel.close();
connection.close();

接收消息

以下是使用 RabbitMQ 接收消息的基本流程:

  1. 創(chuàng)建 ConnectionFactory 對(duì)象。
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setUsername("admin");
factory.setPassword("password");
factory.setVirtualHost("/my_vhost");
  1. 創(chuàng)建 Connection 對(duì)象。
Connection connection = factory.newConnection();
  1. 創(chuàng)建 Channel 對(duì)象。
Channel channel = connection.createChannel();
  1. 聲明隊(duì)列。
String queueName = "hello";
channel.queueDeclare(queueName, false, false, false, null);
  1. 創(chuàng)建 Consumer 對(duì)象。使用 DefaultConsumer 類來實(shí)現(xiàn) Consumer 接口的抽象方法,來接收消息。
DefaultConsumer consumer = new DefaultConsumer(channel) {
    @Override
    public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
        String message = new String(body, "UTF-8");
        System.out.println("Received message: " + message);
    }
};
  1. 監(jiān)聽隊(duì)列。使用 Channel 對(duì)象的 basicConsume() 方法來監(jiān)聽隊(duì)列。其中,autoAck 參數(shù)表示是否自動(dòng)確認(rèn)消息,設(shè)置為 true 表示自動(dòng)確認(rèn)。
channel.basicConsume(queueName, true, consumer);
  1. 關(guān)閉 Channel 和 Connection。
channel.close();
connection.close();

RabbitMQ 的應(yīng)用場(chǎng)景

RabbitMQ 是一個(gè)功能強(qiáng)大的消息隊(duì)列中間件,可以應(yīng)用于多種場(chǎng)景,包括:

  1. 異步處理:將需要異步處理的任務(wù)封裝成消息發(fā)送到 RabbitMQ 中,由消費(fèi)者來接收并處理,從而將請(qǐng)求的響應(yīng)時(shí)間縮短,提高系統(tǒng)的并發(fā)能力。
  2. 應(yīng)用解耦:將不同應(yīng)用之間的通信通過 RabbitMQ 來進(jìn)行,從而實(shí)現(xiàn)應(yīng)用之間的解耦,提高系統(tǒng)的可擴(kuò)展性。
  3. 流量削峰:在高并發(fā)情況下,通過 RabbitMQ 進(jìn)行流量削峰,將請(qǐng)求放入消息隊(duì)列中,由消費(fèi)者來按照處理能力進(jìn)行消費(fèi),從而保證系統(tǒng)的穩(wěn)定性。
  4. 日志收集:將應(yīng)用產(chǎn)生的日志消息發(fā)送到 RabbitMQ 中,由專門的消費(fèi)者來處理和存儲(chǔ),從而實(shí)現(xiàn)日志的集中管理。
  5. 分布式事務(wù):通過 RabbitMQ 來實(shí)現(xiàn)分布式事務(wù)的處理,將各個(gè)節(jié)點(diǎn)的操作封裝成消息發(fā)送到 RabbitMQ 中,由消費(fèi)者來進(jìn)行事務(wù)的統(tǒng)一處理,從而保證整個(gè)系統(tǒng)的一致性。

總結(jié)

本文介紹了 RabbitMQ 的基本概念、安裝和配置、使用方法以及應(yīng)用場(chǎng)景。RabbitMQ 是一個(gè)功能強(qiáng)大的消息隊(duì)列中間件,具有高并發(fā)、高可靠、高可擴(kuò)展等優(yōu)點(diǎn),可以應(yīng)用于多種場(chǎng)景。如果你正在開發(fā)一個(gè)高并發(fā)、分布式的系統(tǒng),RabbitMQ 絕對(duì)是一個(gè)值得考慮的選擇。文章來源地址http://www.zghlxwxcb.cn/news/detail-674060.html

到了這里,關(guān)于RabbitMQ 使用教程(看完就會(huì)用了)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 2023年最新CUDA安裝教程,看完就會(huì)(windows版)。

    2023年最新CUDA安裝教程,看完就會(huì)(windows版)。

    目錄 前言 注意:本教程建立在您已經(jīng)正確安裝了顯卡驅(qū)動(dòng)的基礎(chǔ)上 第一步,找到對(duì)應(yīng)的CUDA版本 第二步,查看你要安裝的pytorch版本對(duì)應(yīng)的cuda版本(如果只需要安裝cuda可以跳過) 第二步,下載cuda 第三步,安裝CUDNN加速庫(kù) 尾言 本文概述:正確安裝CUDA是用顯卡加速深度學(xué)習(xí)的

    2024年02月14日
    瀏覽(21)
  • 3.2.3 存儲(chǔ)器與CPU的連接(重難點(diǎn) 看完就會(huì))

    3.2.3 存儲(chǔ)器與CPU的連接(重難點(diǎn) 看完就會(huì))

    本節(jié)內(nèi)容是存儲(chǔ)器中的重點(diǎn)和難點(diǎn),篇幅較長(zhǎng)。并不用擔(dān)憂,看完這片文章,你會(huì)對(duì)知識(shí)點(diǎn)十分了解,并且會(huì)用幾道題目來鞏固一下內(nèi)容。 由于CPU所要執(zhí)行的指令和數(shù)據(jù)都保存在主存當(dāng)中,并且執(zhí)行完成后,需要將執(zhí)行結(jié)果保存回主存。二者之間的聯(lián)系是非常頻繁,所以他們

    2024年02月01日
    瀏覽(29)
  • C初階必寫的C語(yǔ)言小游戲—掃雷,一看就會(huì),看完就能寫

    C初階必寫的C語(yǔ)言小游戲—掃雷,一看就會(huì),看完就能寫

    人盡皆知的掃雷小游戲,原理簡(jiǎn)單,寫法也簡(jiǎn)單,我會(huì)通過C語(yǔ)言分各個(gè)部分將這個(gè)小游戲進(jìn)行剖析,一看就會(huì)! 我們需要新建一個(gè)頭文件game.h,兩個(gè)源文件game.c和text.c,一共三個(gè)文件 他們的關(guān)系是這樣的: test.c是主體,是游戲的測(cè)試邏輯 game.c是游戲的實(shí)現(xiàn)邏輯 game.h是實(shí)現(xiàn)

    2024年02月05日
    瀏覽(17)
  • 【Git小白使用教程,一看就會(huì)用,快速上手Git(二——建立本地倉(cāng)庫(kù)和對(duì)Gitee或GitHub遠(yuǎn)程倉(cāng)庫(kù)的拉取和推送】

    【Git小白使用教程,一看就會(huì)用,快速上手Git(二——建立本地倉(cāng)庫(kù)和對(duì)Gitee或GitHub遠(yuǎn)程倉(cāng)庫(kù)的拉取和推送】

    1.1、先在本地創(chuàng)建一個(gè)文件夾用作本地倉(cāng)庫(kù),里面可以放你的項(xiàng)目代碼或者你想要上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件。 1.2、然后在文件夾內(nèi)通過cmd打開終端命令行 git init ——初始化本地倉(cāng)庫(kù),運(yùn)行成功后,文件夾內(nèi)會(huì)出現(xiàn)一個(gè).git文件 也可以在文件夾內(nèi)右擊鼠標(biāo),選擇git bash打開git命令

    2024年02月04日
    瀏覽(95)
  • Python以及Pycharm保姆級(jí)的下載安裝教程,看完就懂

    Python以及Pycharm保姆級(jí)的下載安裝教程,看完就懂

    接下來看看由輝輝所寫的關(guān)于Python的相關(guān)操作吧 目錄 ????Welcome Huihui\\\'s Code World ! !???? 一.Python的安裝 1.下載地址 2.下載步驟 二.Pycharm的安裝? 1.下載地址 2.下載步驟 Python的下載地址 https://www.python.org/ 注意:如果是自己在瀏覽器搜索的話,盡量選擇自帶的瀏覽器(或者自己

    2024年02月14日
    瀏覽(24)
  • 電腦技巧:寬帶怎么設(shè)置教程筆記,看完你就會(huì)了

    電腦技巧:寬帶怎么設(shè)置教程筆記,看完你就會(huì)了

    寬帶的設(shè)置是指將計(jì)算機(jī)連接到互聯(lián)網(wǎng)的過程。一般來說,寬帶的設(shè)置是非常簡(jiǎn)單的,只需要按照提供商的要求,正確地連接硬件和軟件就可以了。下面將詳細(xì)介紹如何設(shè)置寬帶。 硬件設(shè)置:首先,需要連接計(jì)算機(jī)和調(diào)制解調(diào)器,以及路由器(如果有的話)。通常,寬帶提供

    2024年02月11日
    瀏覽(21)
  • 用了這么久rabbitmq,你還不知道它的目錄結(jié)構(gòu)嗎?

    用了這么久rabbitmq,你還不知道它的目錄結(jié)構(gòu)嗎?

    rabbitmq配置目錄:/etc/rabbitmq/ ? 常見配置文件有: (1)配置文件 rabbitmq.conf (2)環(huán)境變量文件 rabbitmq-env.conf (3)補(bǔ)充配置文件 advanced.config rabbitmq數(shù)據(jù)目錄:/var/lib/rabbitmq/ 目錄文件有: rabbitmq日志文件: /var/log/rabbitmq ? 目錄文件有: rabbitmq命令腳本:/usr/lib/rabbitmq/ 1.bin目錄

    2024年02月16日
    瀏覽(103)
  • Vue2簡(jiǎn)單使用及相關(guān)基礎(chǔ)知識(shí)概念(適合小白入門,看完就能上手)

    Vue2簡(jiǎn)單使用及相關(guān)基礎(chǔ)知識(shí)概念(適合小白入門,看完就能上手)

    MVC模式(同步通信為主):Model、View、Controller MVP模式(異步通信為主):Model、View、Presenter MVVM模式(異步通信為主):Model、View、ViewModel(目前主要的模式) 2.1 概念 MVVM是一種軟件架構(gòu)設(shè)計(jì)模式。MVVM的核心是ViewModel層,負(fù)責(zé)轉(zhuǎn)換Model層中的數(shù)據(jù)對(duì)象來讓數(shù)據(jù)變得更加容易

    2024年02月07日
    瀏覽(20)
  • 看完RabbitMQ了的幾種消息模型,我對(duì)RabbitMQ有了新的認(rèn)識(shí)

    看完RabbitMQ了的幾種消息模型,我對(duì)RabbitMQ有了新的認(rèn)識(shí)

    前言:大家好,我是小威,24屆畢業(yè)生,曾經(jīng)在某央企公司實(shí)習(xí),目前在某稅務(wù)公司。前面已經(jīng)記錄了兩種消息模型知識(shí),因此本篇文章將記錄和分享剩下的RabbitMQ幾種消息模型相關(guān)知識(shí)點(diǎn)。 本篇文章記錄的基礎(chǔ)知識(shí),適合在學(xué)Java的小白,也適合復(fù)習(xí)中,面試中的大佬 ????

    2024年02月01日
    瀏覽(20)
  • 中文編程最高境界,不用編程,會(huì)用excel就會(huì)用,香不香?

    中文編程最高境界,不用編程,會(huì)用excel就會(huì)用,香不香?

    一直以來,關(guān)于中文編程的爭(zhēng)議從未消停過。現(xiàn)如今,中文編程發(fā)展又是如何? ★為了實(shí)現(xiàn)中文編程,從未停下腳步 我們知道,中國(guó)人一直以來為了實(shí)現(xiàn)中文編程付出了不懈的努力,前前后后研發(fā)了幾十種中文編程語(yǔ)言。比如我們常見的易語(yǔ)言、習(xí)語(yǔ)言、丙正正、O語(yǔ)言等等

    2024年02月05日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包