rabbitmq的介绍、使用、案例

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

1.介绍

rabbitmq的介绍、使用、案例,java

rabbitmq简单来说就是个消息中间件,可以让不同的应用程序之间进行异步的通信,通过消息传递来实现解耦和分布式处理。

消息队列:允许将消息发到队列,然后进行取出、处理等操作,使得生产者和消费者之间能够解耦,异步地进行通信。

持久性,可靠性的消息传递机制。

2.安装rabbitmq

2.1新建文件夹

[root@localhost local]# mkdir rabbitmq
[root@localhost rabbitmq]# mkdir data

新建一个rabbitmq的文件夹,然后在rabbitmq文件夹下新建一个data的文件夹。data文件夹用来挂载rabbitmq内部文件,然后用来存储数据。

2.2查看rabbitmq的镜像

[root@localhost rabbitmq]# docker search rabbitmq

rabbitmq的介绍、使用、案例,java

然后就可以下载官方的rabbitmq了。

2.3下载rabbitmq镜像

[root@localhost rabbitmq]# docker pull rabbitmq  下载镜像
[root@localhost rabbitmq]# docker images   查看镜像

rabbitmq的介绍、使用、案例,java

下载好之后就可以查看下镜像,这样最新的rabbitmq就已经下载成功了,下一步就是创建容器了。

2.4创建rabbitmq容器

docker run -it \
--name rabbitmq \
--network wn_docker_net \
--ip 172.18.12.20 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/rabbitmq/data:/var/lib/rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123 \
-p 15672:15672 \
-p 5672:5672 \
-d rabbitmq

--network,--ip自己设置的网络ip。可以查看下自己的ip是多少。

[root@localhost rabbitmq]# docker inspect rabbitmq

rabbitmq的介绍、使用、案例,java

这就是我们之前设置的ip地址了。

-v是挂载容器内部的文件,这样方便我们在Linux上就可以直接对文件进行操作,在容器内部,先当与一个简单的Linux,里面有一些指令是没有的,需要下载,不方便我们进行操作。-v冒号前面的是自己的路径,注意看自己的路径名称和路径是否正确,避免创建时出错。在创建的时候可以先复制到记事本上,对比自己的信息,进行更改,在Linux上不便操作。

-e是用来设置rabbitmq的默认的账号和密码。

[root@localhost rabbitmq]# docker ps

rabbitmq的介绍、使用、案例,java

是up的话就是创建成功了。这里也可以查看日志检查是否成功。

[root@localhost rabbitmq]# docker logs rabbitmq

rabbitmq的介绍、使用、案例,java

rabbitmq的介绍、使用、案例,java

看到版本号,这些info就是ok了,遇到错误的时候,多看看日志,帮助自己解决问题。

3.查看官网

rabbitmq的介绍、使用、案例,java

输入自己的虚拟机ip+刚刚设置的端口号,进到这个页面,然后输入之前设置好的默认的账号和密码。

3.1访问失败解决办法

如果是这个页面的话,多半和防火墙有关,没有开放端口。这里的话我是自己电脑学习和测试用的,直接把防火墙关了,如果你不放心的话,就每次安装一个新的东西的时候,记得开放下端口。

[root@localhost rabbitmq]# firewall-cmd --add-port=15672/tcp --permanent

这样就是把15672这个端口给永久开放了,顺便把5672也给打开,后面用java代码的时候有用。

firewall-cmd --reload

可以检查有没有打开。如果还是访问不了,那么就有可能是rabbitmq有个插件没有开,不让我们用浏览器打开。

进到rabbitmq容器的内部。

[root@localhost rabbitmq]# docker exec -it rabbitmq bash
root@439d8554a76d:/# rabbitmq-plugins enable rabbitmq_management

运行命令,打开管理端,然后exit可以退出容器,刷新下页面看下能不能成功,如果还是不行,查看日志。

rabbitmq的介绍、使用、案例,java

这样就成功的进到了rabbitmq的操作页面了。

4.生产者和消费者模型

4.1介绍

rabbitmq的基础理论就是生产者和消费者模型,在这里进行解释,方便对rabbitmq进行理解和使用。

生产者和消费者模型是分为以下几个要素:共享缓冲区、生产者、消费者。下面以去kfc买鸡腿举例:

rabbitmq的介绍、使用、案例,java

就是顾客要买鸡腿,肯定是需要去店里去买的,只有店员在炸好鸡腿之后,顾客点餐买好鸡腿。炸鸡腿的店员和顾客是不直接接触的,是互相不认识的。

在rabbitmq的消费者和生产者模型中通常就是消费者将消息发送到消息队列中,消费者从消息队列中获取消息并处理。实现解耦和异步通信。

4.1.1队列的解释

首先队列是一种数据结构,它的底层可能是数组也可以是链表两种。在这里先解释数组和链表的区别:

数组:连续的内存空间,查询比较高效,数组需要指定大小,超过范围要考虑扩容的问题。

链表:非连续的内存空间,对在链表中进行插入和删除很高效,动态大小。

4.2代码举例

以去KFC买鸡腿为例:

4.2.1entity 实体类
package com.mq.entity;
​
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
​
/*
kfc中的产品名称
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Food {
    private String name;
}

就是简单的写个名字。

lombok可以简化代码,提高代码的可读性和可维护性。在pom文件中引入。

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
    </dependencies>

@Data 通用方法,set、get、tostring等

@AllArgsConstructor 全参

@NoArgsConstructor 无参

4.2.2service

接口:

/**
 * produce:生产者
 * consume:消费者
 */
public interface IKFC {
​
    public void produce();
​
    public void consume();
}

在IKFC这个接口中,写了一个生产者的抽象方法和一个消费者的抽象方法来模拟实际的场景。文章来源地址https://www.toymoban.com/news/detail-808737.html

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

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

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

相关文章

  • RabbitMQ延时队列的详细介绍以及Java代码实现

    前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将详细介绍RabbitMQ的延时队列以及其详细代码实现。 如果文章有什么需要改进的地方还请大佬不吝赐教 👏👏。 小威在此先感谢各位大佬啦~~🤞🤞 🏠个人主页:小威要向诸佬学习呀 🧑个人简介:大

    2024年02月01日
    浏览(18)
  • rabbitMq介绍及使用

    点击跳转https://blog.csdn.net/qq_43410878/article/details/123656765

    2024年02月10日
    浏览(13)
  • RabbitMq介绍和使用

    MQ,是Message Queue的缩写,遵循先进先出的原则 在项目中用于流量削峰,应用解耦,异步处理 流量削峰:处理大量订单时,将订单分散,部分用户下单后需要进行等待,但却防止了服务宕机 应用解耦:当进行服务之间的通信时,普通方式不能保证当前模块调用其他模块出错后

    2024年02月06日
    浏览(14)
  • 15年大牛用140多个实战案例深入讲解Java微服务架构实战:SpringBoot +SpringCloud +Docker +RabbitMQ

    第一部分,springboot篇; 第1章SpringBoot编程起步; 1.SpringBoot提倡的是一种简洁的开发模式,可保证用户不被大量的配置文件和依赖关系所困扰。 2.SpringBoot开发需要Maven或 Gradle构建工具支持。 3.SpringBoot使用一系列的注解来简化开发过程。 第2章SpringBoot程序开发; 1. SpringBoot的依赖

    2024年04月09日
    浏览(25)
  • 【设计模式】23种设计模式——单例模式(原理讲解+应用场景介绍+案例介绍+Java代码实现)

    介绍 所谓类的单例设计模式,就是采取一定的方法, 保证在整个的软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量

    2024年02月13日
    浏览(23)
  • 递归函数的介绍及使用案例

    递归函数,实际上就是将一个自定义的函数在运行过程中反复调用他自己,直到遇到结束条件就停止

    2024年02月08日
    浏览(19)
  • Spring Boot中RabbitMQ自动配置的介绍、原理和使用

    RabbitMQ是一种高性能的消息队列系统,它支持多种消息协议和丰富的功能,如消息路由、消息确认、消息重试、死信队列等。在Spring Boot中,我们可以通过自动配置的方式来使用RabbitMQ。本文将介绍Spring Boot中RabbitMQ自动配置的介绍、原理和使用方法。 在Spring Boot中,我们可以通

    2024年02月11日
    浏览(36)
  • 初识RabbitMQ(RMQ的五种消息模型介绍以及使用演示)

    RabbitMQ官方提供了5个不同的Demo示例,对应了不同的消息模型: 简单队列 Work模式 广播模式 路由模式 主题模式 其实我比较喜欢将他们分成三类: 1.简单队列:一个生产者,一个消费者。(名师指导,1V1) 2.Work模式:一个生产者,多个消费者。但是一条消息只能够给到一个人

    2023年04月08日
    浏览(19)
  • 【设计模式】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)

    建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同属性的对象 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,不

    2024年02月16日
    浏览(31)
  • 【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)

    请编写程序完成APP抽奖活动具体要求如下: 假如每参加一次这个活动要扣除用户50积分,中奖概率是10% 奖品数量固定,抽完就不能抽奖 活动有四个状态: 可以抽奖、不能抽奖、发放奖品和奖品领完,活动的四个状态转换关系图如下 一开始的状态为“不能抽奖”,当扣除50积分

    2024年02月12日
    浏览(24)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包