RabbitMQ 使用教程(看完就会用了)

这篇具有很好参考价值的文章主要介绍了RabbitMQ 使用教程(看完就会用了)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RabbitMQ 是一种消息队列软件,可以用来实现分布式系统中的消息传递、异步任务处理、日志收集等功能。它基于 AMQP(Advanced Message Queuing Protocol)协议,支持多种编程语言和平台。

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

  • RabbitMQ 的基本概念和架构
  • 如何安装和配置 RabbitMQ
  • 如何使用 RabbitMQ 发送和接收消息
  • 如何使用 RabbitMQ 进行消息的确认和重试
  • 如何使用 RabbitMQ 实现发布订阅模式和工作队列模式

RabbitMQ 的基本概念和架构

基本概念

  • 消息(Message):指的是传递的信息。消息由消息头和消息体组成,消息头包含了一些元数据,例如消息的路由键、消息的优先级等。
  • 消息队列(Queue):指的是消息的缓存区。当生产者发送消息时,消息会被发送到消息队列中,等待消费者消费。
  • 交换机(Exchange):指的是消息的路由中心。当消息被发送到交换机时,交换机会将消息根据路由键发送到对应的消息队列中。
  • 绑定(Binding):指的是交换机和消息队列之间的绑定关系。绑定规定了交换机将消息发送到哪些消息队列中。
  • 路由键(Routing Key):指的是消息的路由关键字。交换机会根据路由键将消息发送到对应的消息队列中。

架构

RabbitMQ 的架构分为四个部分:

  • 生产者(Producer):指的是发送消息的客户端。
  • 消息队列(Queue):指的是消息的缓存区,用于存储消息。
  • 交换机(Exchange):指的是消息的路由中心,用于将消息发送到对应的消息队列中。
  • 消费者(Consumer):指的是接收消息的客户端。

安装和配置 RabbitMQ

安装 RabbitMQ

RabbitMQ 的安装非常简单。只需从官方网站 https://www.rabbitmq.com/download.html 下载对应版本的 RabbitMQ 安装包,然后按照提示进行安装即可。

配置 RabbitMQ

安装完成后,需要进行一些配置工作,以便 RabbitMQ 正常运行。具体步骤如下:

  1. 启动 RabbitMQ 服务器。在 Windows 系统下,可以通过 “Start Menu”->“RabbitMQ Server”->“Start RabbitMQ Command Prompt” 打开命令行窗口,然后输入以下命令:
rabbitmq-server.bat start
  1. 创建管理员账户。在命令行窗口中输入以下命令:
rabbitmqctl add_user admin password

这里将管理员账户的用户名设置为 “admin”,密码设置为 “password”,你可以根据自己的需要修改。

  1. 授予管理员权限。在命令行窗口中输入以下命令:
rabbitmqctl set_user_tags admin administrator

这里将管理员账户的标签设置为 “administrator”,以授予其完整的管理权限。

  1. 创建虚拟主机。在命令行窗口中输入以下命令:
rabbitmqctl add_vhost /my_vhost

这里将创建一个名为 “my_vhost” 的虚拟主机,你可以根据自己的需要修改。

  1. 授予虚拟主机权限。在命令行窗口中输入以下命令:
rabbitmqctl set_permissions -p /my_vhost admin ".*" ".*" ".*"

这里将管理员账户授予了 “my_vhost” 虚拟主机的所有权限。

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

这里启用了 RabbitMQ 的管理插件,可以通过浏览器访问 http://localhost:15672/ 来进行管理。

使用 RabbitMQ 发送和接收消息

发送消息

以下是使用 RabbitMQ 发送消息的基本流程:

  1. 创建 ConnectionFactory 对象。Connection 是 RabbitMQ 的一个核心概念,表示与 RabbitMQ 建立的 TCP 连接。ConnectionFactory 是用于创建 Connection 对象的工厂类。
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setUsername("admin");
factory.setPassword("password");
factory.setVirtualHost("/my_vhost");
  1. 创建 Connection 对象。这里使用了 ConnectionFactory 的 createConnection() 方法创建 Connection 对象。
Connection connection = factory.newConnection();
  1. 创建 Channel 对象。Channel 是 RabbitMQ 的另一个核心概念,表示通过 Connection 建立的信道。我们可以通过 Channel 对象来发送和接收消息。
Channel channel = connection.createChannel();
  1. 声明队列。如果要向一个不存在的队列发送消息,需要先声明该队列。
String queueName = "hello";
channel.queueDeclare(queueName, false, false, false, null);
  1. 发送消息。使用 Channel 对象的 basicPublish() 方法来发送消息。其中,exchange 参数表示交换机的名称,routingKey 参数表示消息的路由键。
String message = "Hello World!";
channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
  1. 关闭 Channel 和 Connection。发送完消息后,需要及时关闭 Channel 和 Connection 对象。
channel.close();
connection.close();

接收消息

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

  1. 创建 ConnectionFactory 对象。
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setUsername("admin");
factory.setPassword("password");
factory.setVirtualHost("/my_vhost");
  1. 创建 Connection 对象。
Connection connection = factory.newConnection();
  1. 创建 Channel 对象。
Channel channel = connection.createChannel();
  1. 声明队列。
String queueName = "hello";
channel.queueDeclare(queueName, false, false, false, null);
  1. 创建 Consumer 对象。使用 DefaultConsumer 类来实现 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. 监听队列。使用 Channel 对象的 basicConsume() 方法来监听队列。其中,autoAck 参数表示是否自动确认消息,设置为 true 表示自动确认。
channel.basicConsume(queueName, true, consumer);
  1. 关闭 Channel 和 Connection。
channel.close();
connection.close();

RabbitMQ 的应用场景

RabbitMQ 是一个功能强大的消息队列中间件,可以应用于多种场景,包括:

  1. 异步处理:将需要异步处理的任务封装成消息发送到 RabbitMQ 中,由消费者来接收并处理,从而将请求的响应时间缩短,提高系统的并发能力。
  2. 应用解耦:将不同应用之间的通信通过 RabbitMQ 来进行,从而实现应用之间的解耦,提高系统的可扩展性。
  3. 流量削峰:在高并发情况下,通过 RabbitMQ 进行流量削峰,将请求放入消息队列中,由消费者来按照处理能力进行消费,从而保证系统的稳定性。
  4. 日志收集:将应用产生的日志消息发送到 RabbitMQ 中,由专门的消费者来处理和存储,从而实现日志的集中管理。
  5. 分布式事务:通过 RabbitMQ 来实现分布式事务的处理,将各个节点的操作封装成消息发送到 RabbitMQ 中,由消费者来进行事务的统一处理,从而保证整个系统的一致性。

总结

本文介绍了 RabbitMQ 的基本概念、安装和配置、使用方法以及应用场景。RabbitMQ 是一个功能强大的消息队列中间件,具有高并发、高可靠、高可扩展等优点,可以应用于多种场景。如果你正在开发一个高并发、分布式的系统,RabbitMQ 绝对是一个值得考虑的选择。文章来源地址https://www.toymoban.com/news/detail-674060.html

到了这里,关于RabbitMQ 使用教程(看完就会用了)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023年最新CUDA安装教程,看完就会(windows版)。

    目录 前言 注意:本教程建立在您已经正确安装了显卡驱动的基础上 第一步,找到对应的CUDA版本 第二步,查看你要安装的pytorch版本对应的cuda版本(如果只需要安装cuda可以跳过) 第二步,下载cuda 第三步,安装CUDNN加速库 尾言 本文概述:正确安装CUDA是用显卡加速深度学习的

    2024年02月14日
    浏览(32)
  • 3.2.3 存储器与CPU的连接(重难点 看完就会)

    本节内容是存储器中的重点和难点,篇幅较长。并不用担忧,看完这片文章,你会对知识点十分了解,并且会用几道题目来巩固一下内容。 由于CPU所要执行的指令和数据都保存在主存当中,并且执行完成后,需要将执行结果保存回主存。二者之间的联系是非常频繁,所以他们

    2024年02月01日
    浏览(39)
  • C初阶必写的C语言小游戏—扫雷,一看就会,看完就能写

    人尽皆知的扫雷小游戏,原理简单,写法也简单,我会通过C语言分各个部分将这个小游戏进行剖析,一看就会! 我们需要新建一个头文件game.h,两个源文件game.c和text.c,一共三个文件 他们的关系是这样的: test.c是主体,是游戏的测试逻辑 game.c是游戏的实现逻辑 game.h是实现

    2024年02月05日
    浏览(32)
  • 【Git小白使用教程,一看就会用,快速上手Git(二——建立本地仓库和对Gitee或GitHub远程仓库的拉取和推送】

    1.1、先在本地创建一个文件夹用作本地仓库,里面可以放你的项目代码或者你想要上传到远程仓库的文件。 1.2、然后在文件夹内通过cmd打开终端命令行 git init ——初始化本地仓库,运行成功后,文件夹内会出现一个.git文件 也可以在文件夹内右击鼠标,选择git bash打开git命令

    2024年02月04日
    浏览(51)
  • Python以及Pycharm保姆级的下载安装教程,看完就懂

    接下来看看由辉辉所写的关于Python的相关操作吧 目录 🥳🥳Welcome Huihui\\\'s Code World ! !🥳🥳 一.Python的安装 1.下载地址 2.下载步骤 二.Pycharm的安装  1.下载地址 2.下载步骤 Python的下载地址 https://www.python.org/ 注意:如果是自己在浏览器搜索的话,尽量选择自带的浏览器(或者自己

    2024年02月14日
    浏览(37)
  • 电脑技巧:宽带怎么设置教程笔记,看完你就会了

    宽带的设置是指将计算机连接到互联网的过程。一般来说,宽带的设置是非常简单的,只需要按照提供商的要求,正确地连接硬件和软件就可以了。下面将详细介绍如何设置宽带。 硬件设置:首先,需要连接计算机和调制解调器,以及路由器(如果有的话)。通常,宽带提供

    2024年02月11日
    浏览(36)
  • 用了这么久rabbitmq,你还不知道它的目录结构吗?

    rabbitmq配置目录:/etc/rabbitmq/ ​ 常见配置文件有: (1)配置文件 rabbitmq.conf (2)环境变量文件 rabbitmq-env.conf (3)补充配置文件 advanced.config rabbitmq数据目录:/var/lib/rabbitmq/ 目录文件有: rabbitmq日志文件: /var/log/rabbitmq ​ 目录文件有: rabbitmq命令脚本:/usr/lib/rabbitmq/ 1.bin目录

    2024年02月16日
    浏览(28)
  • Vue2简单使用及相关基础知识概念(适合小白入门,看完就能上手)

    MVC模式(同步通信为主):Model、View、Controller MVP模式(异步通信为主):Model、View、Presenter MVVM模式(异步通信为主):Model、View、ViewModel(目前主要的模式) 2.1 概念 MVVM是一种软件架构设计模式。MVVM的核心是ViewModel层,负责转换Model层中的数据对象来让数据变得更加容易

    2024年02月07日
    浏览(46)
  • 看完RabbitMQ了的几种消息模型,我对RabbitMQ有了新的认识

    前言:大家好,我是小威,24届毕业生,曾经在某央企公司实习,目前在某税务公司。前面已经记录了两种消息模型知识,因此本篇文章将记录和分享剩下的RabbitMQ几种消息模型相关知识点。 本篇文章记录的基础知识,适合在学Java的小白,也适合复习中,面试中的大佬 🤩🤩

    2024年02月01日
    浏览(37)
  • 中文编程最高境界,不用编程,会用excel就会用,香不香?

    一直以来,关于中文编程的争议从未消停过。现如今,中文编程发展又是如何? ★为了实现中文编程,从未停下脚步 我们知道,中国人一直以来为了实现中文编程付出了不懈的努力,前前后后研发了几十种中文编程语言。比如我们常见的易语言、习语言、丙正正、O语言等等

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包