(一)RabbitMQ简单入门教程(安装及工作模式介绍)图文教学通俗易懂,SpringBoot集成,超级简单!!

教程相关代码:RabbitMQ入门教程——GitHub

1.为什么要使用消息中间件?

个人理解:主要是为了 解耦合,负载均衡,异步处理等,是分布式系统的重要组件。生产者只需要生产出消息,将消息交给消息中间件即可,这样生产者就不用去执行发送消息等待回应这些操作,大大提高了生产者的效率,这样就实现了高性能。

2.RabbitMQ结构

如图:
在这里插入图片描述
相关概念:
(生产者和消费者这里就不赘述了)
交换机(exchange):我认为“分发器”这个名字更适合,交换机负责将生产者传来的消息“分发”到队列中存储,这里的分发可以是默认分发,无规则分发,有规则分发,在下面我们会详细讲解这些分发工作模式。
队列(queue):用于存储消息,消息到达队列后能在消费者需要的时候转发给消费者。
routingkey:交换机的“分发规则”,就像正则表达式一样。传来的消息中有routingkey就像钥匙一样,在交换机中为每个队列设置binding key就像锁一样,这样就可以控制消息传递的方向。
连接(connection):生产者和消费者与消息中间件之间的TCP连接。
通道(channels):通道是在连接的内部,数据是在通道中流动的。

:通道是在连接的内部,我在一开始学习的时候一直没搞清楚,配个图更直观。
在这里插入图片描述

3.RabbitMQ安装与启动

这里我们只介绍windows环境下的安装

相关下载https://pan.baidu.com/s/1KpojYjYcqza8imyIp6Egig 提取码:dtec

复制这段内容后打开百度网盘手机App,操作更方便哦

  1. 下载并安装Eralng,这个是RabbitMQ的运行环境,一路next即可。

  2. 下载并安装RabbitMQ,一路next。
    安装成功后会自动创建RabbitMQ服务并且启动。
    也可以在开始菜单中找到相关信息
    在这里插入图片描述
    RabbitMQ Service-install :安装服务
    RabbitMQ Service-remove 删除服务
    RabbitMQ Service-start 启动
    RabbitMQ Service-stop 启动
    如果没有开始菜单则进入安装目录下sbin目录手动启动

  3. 安装管理界面(插件),为了能在浏览器中管理
    进入rabbitMQ安装目录的sbin目录,输入命令或在开始菜单中点击“RabbitMQ Command Prompt”

    rabbitmq-plugins.bat enable rabbitmq_management
    
  4. 打开浏览器,地址栏输入http://127.0.0.1:15672 ,即可看到管理界面的登陆页
    初始账号和密码:guest/guest

4.工作模式

4.1 直接模式(Direct)

我们需要将消息发送给唯一消费者时用这种模式
在这里插入图片描述

  • 直接模式是不需要配置交换机的,使用系统默认的交换机,默认交换机什么都不干,只是“走个形式”
  • 多个消费者可以监听同一个队列,采用轮询的方式将消息平均分发给消费者,也就是负载均衡
  • 消息传递时需要一个“RouteKey”,可以简单的理解为要发送到的队列名字。

详细教程:RabbitMQ工作模式之直接模式

4.2 分裂模式(Fanout)

当我们需要将消息一次发给多个队列时,需要使用这种模式。

在这里插入图片描述

  • 需要提前将交换机和队列进行绑定
  • 路由器会将消息发送到所有绑定在该交换机上的队列

详细教程:RabbitMQ工作模式之分裂模式

4.3 主题模式(Topic)

如果需要将消息发送到指定的队列(交换机上绑定了许多队列),那么你就需要使用该模式。该模式其实是分裂模式的加强版,分裂模式就像各个家的门没有上锁,主题模式就是把门上了锁,需要相应的钥匙才能打开。

在这里插入图片描述

  • 在该模式下,每个绑定在交换机上的队列都有自己的bindingkey,这个就是队列的锁
  • 在该模式下,消息都带有自己的routingkey,这个就是消息的钥匙
  • 一个routingkey可以打开多个bindingkey
  • 模糊匹配,在bindingkey中,符号 # 匹配一个或多个词,符号 * 匹配不多不少一个词。因此,如果routingkey为queue1.abc会匹配到队列1,如果routingkey为queue1.queue2.a会匹配到队列1和队列2
  • 精确匹配,如果你在bindingkey中不使用#*符号,那么就必须bindingkey=routingkey才能匹配上

详细教程:RabbitMQ工作模式之主题模式

下一章节:RabbitMQ工作模式之直接模式

相关链接:
RabbitMQ工作模式之直接模式
RabbitMQ工作模式之分裂模式
RabbitMQ工作模式之主题模式

作者编写不易,转载请注明我的博客,如果觉得写的不错的话,请随手点个赞,谢谢!!!
作者编写不易,转载请注明我的博客,如果觉得写的不错的话,请随手点个赞,谢谢!!!
作者编写不易,转载请注明我的博客,如果觉得写的不错的话,请随手点个赞,谢谢!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值