什么是RabbitMQ? 怎么快速入手?怎么用???

MQ 消息队列:RabbitMQ

1. 概述

消息队列,即MQ,Message Queue。

消息队列是典型的:生产者、消费者模型。

  • 消息队列:生产者/消费者模式实现。

img

  • 生产者不断向消息队列中生产消息,
  • 消费者不断的从队列中获取消息。
  • 因为消息的生产和消费都是异步的
  • 而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。

二. 实现方式:AMQP、JMS

MQ是消息通信的模型,并不是具体实现。现在实现MQ的有两种主流方式:AMQP、JMS。

img

img

  • 两者间的区别和联系:
  1. JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
  2. JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
  3. JMS规定了两种消息模型;而AMQP的消息模型更加丰富

总的来说:

两种主流方式:AMQP、JMS

  • AMQP:基于协议,要求消息格式,跨语言。
  • JMS:基于Java接口,只支持Java。

三. 常见MQ产品

  • ActiveMQ:基于JMS
  • RabbitMQ:基于AMQP协议,erlang语言开发,稳定性好
  • RocketMQ:基于JMS,阿里巴巴产品,目前交由Apache基金会
  • Kafka:分布式消息系统,高吞吐量

四.RabbitMQ

RabbitMQ是基于AMQP的一款消息管理系统

img

五.下载&&安装

  1. 官网下载地址:http://www.rabbitmq.com/download.html
  2. 该路径是快速跳转下载页面,不需要自己到处找↓
    • https://www.rabbitmq.com/install-windows.html#installer
  3. 目前最新版本是:3.8.3
  • 下载位置提示

img

  • RabbitMQ3.8.3对应的Erlang版本下载

img

erlang 版本 必须与 rabbitmq 版本匹配

  • rabbitmq 3.8.3 需要使用 erlang 22.x 版本

  • 下载后是两个安装包:

img

安装erlang( 基于 erlang 语言编写的,需要先安装 erlang )

步骤一, 最好以管理员身份运行,进入安装页面

img

步骤二. 根据自己电脑情况选择位置, 后缀 \er\10.5最好不要删,改前面路径即可

img

最终点击完成即可

安装RabbitMQ

步骤一.进入下一步即可,不选

img

步骤二: 根据自身电脑存储位置放置即可,

后缀RabbitMQ Server最好别删,改前面路径即可

img

最终点击Install安装即可 , 即为安装完成

六.运行

步骤一. 点击Window键, 打开窗口,找RabbitMQ Server 文件夹下第一个程序

img

步骤二. 进入命令窗口

激活插件

rabbitmq-plugins.bat enable rabbitmq_management

img

步骤三:重启

net stop rabbitmq && net start rabbitmq

img

可能出现的问题:(如果没问题,一切正常,此解决方案可忽略,直接去步骤四)

1) 没有 ERLANG_HOME 配置

错误提示:没有ERLANG_HOME系统环境变量

img

解决方法:配置系统环境变量

img

2) 拒绝访问,发生系统错误5

错误描述:

img

问题分析:没有权限,需要使用管理员运行

解决方案:

以管理员运行cmd

3)不能加载erlang模块

错误描述

img

  • 问题:erlang没有安装成功
  • 解决办法:重新安装erlang

4)不能成功启动

错误描述

img

  • 问题:端口号占用
  • 解决版本:将与RabbitMQ相关的程序都结束,重新启动

5)服务名无效

错误描述:

img

  • 问题:RabbitMQ没有安装成功
  • 检查:服务中是否有 RabbitMQ
  • img

步骤四.然后即可查看服务是否启动成功

键盘输入win+R,输入命令 services.msc

img

键盘输入R ,自动跳转到服务位置查看即可

img

步骤五. 访问

1.输入 http://127.0.0.1:15672/

img

2. 默认账号登录:guest/ guest

img

3. 访问首页即为成功

img

七.环境搭建&&测试使用

1. 添加测试队列

img

然后就会多一条列表

img

2. IDEA 后端测试服务中 Pom.xml文件导入依赖配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

img

3. yml配置

spring:
  rabbitmq:
    host: 127.0.0.1
    username: guest
    password: guest

img

4. 创建生产者

在测试文件,创一个生产者类

@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplication.class)
public class TestProducer {
    @Resource
    private RabbitTemplate rabbitTemplate;

    @Test
    public void run1(){
        rabbitTemplate.convertAndSend("","changgou_test","abc456");
    }
}

img

然后运行, 运行成功后,再去网站RabbitMq控制台查看变化

img

5. 创建消费者

@Component  //将监听器交于spring容器
@RabbitListener(queues = "changgou_test")
public class TestConsumer {

    @RabbitHandler
    public void run1(String message){
        System.out.println("消费者dddd"+message);
    }
}

img

然后运行启动器,即可

img

注意:

当你运行了启动器, 你再去生产者改别的数据测试时,你想去网站RabbitMQ看变化 ,会出现没变化的现象,此时不要慌,淡定,有我在

img

因为,你消费者也用启动器运行了,所以,它直接被调用了,数据来回比较快,等你点开这里看,人家消费者已经把数据拿走了

可以直接去后台启动器的控制台看展示数据即可

img

当这一步,恭喜你,顺利入门了,biubiu ,来个烟花庆祝一下,感谢捧场!

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多!

~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

原创文章 8 获赞 5 访问量 327

猜你喜欢

转载自blog.csdn.net/qq_43705131/article/details/106121833
今日推荐