【Spring Boot 7】RabbitMQ基础知识总结,mybatis运行原理

本文详细介绍了RabbitMQ的基础知识,包括Direct、Topic、Header和Fanout四种交换机模型,以及如何在Spring Boot中集成RabbitMQ进行消息发送与接收。通过实例展示了RabbitMQ在异步处理、应用解耦和流量削峰等场景中的应用,并提供了多对多的消息发送和接收示例。
摘要由CSDN通过智能技术生成

在安装完rabbitMq后,输入http://ip:15672/ ,是可以看到一个简单后台管理界面的。

二、RabbitMQ的特点

=============

1、被设计为一个通用的消息代理服务,支持点对点、请求-回复、发布-订阅等模式。

2、专注于消息的一致性、可靠性和稳定性。

3、对Java、.net、node.js、PHP等多语言有着非常好的支持,并且有丰富的插件来提供功能扩展,没有做不到只有想不到。

4、支持同步或异步消息通信,支持分布式部署和多节点集群部署,能提供2万/秒的消息分发能力,性能上不敌kafka。

三、RabbitMQ的相关概念

===============

通常我们谈到队列服务,会有三个概念:发消息者、队列、收消息者,RabbitMQ在这个基本概念之上,多做了一层抽象,在发消息者和队列之间加入了交换器exchange,这样发消息者和队列就没有直接联系,转而编程发消息者把消息给交换器,交换器根据调度策略再把消息给队列。

黄色的圈圈就是我们的消息推送服务,将消息推送到中间方框里面,也就是RabbitMQ服务器,然后经过服务器里面的交换机、队列等各种关系将数据处理入列,最终右边的蓝色圈圈消费者获取对应监听的消息。

那么,其中比较重要的概念就有四个,分别是:虚拟主机、交换机、队列和绑定。

  • 虚拟主机:一个虚拟主机持有一组交换机、队列和绑定。为什么需要多个虚拟主机呢?很简单, RabbitMQ 当中,用户只能在虚拟主机的粒度进行权限控制。因此,如果需要禁止A组访问B组的交换机、队列、绑定,必须为A和B分别创建一个虚拟主机、每一个 RabbitMQ 服务器都有一个默认的虚拟主机“/”。

  • 交换机:Exchange用于转发消息,但是它不会做存储,如果没有queue bind到Exchange的话,它会直接丢掉Producer发送过来的消息。这里有一个比较重要的概念:路由键。消息到交换机的时候,交换机转发到对应的队列中,那么究竟转发到哪个队列,就要根据该路由键。

  • 绑定:也就是交换机需要和队列相绑定,这其中如上图所示,是多对多的关系。

交换机(Exchange)


交换机的功能主要是接收消息并转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct 、Topic、Headers、Fanout

  • Direct :direct类型的行为是“先匹配再投送”,即在绑定时设定一个routing_key,消息的routing_key匹配时,才会被交换机投送到绑定的队列中去。

  • Topic:按规则转发消息(最灵活)

  • Headers:设置header attribute参数类型的交换机(基本不用)

  • Fanout:转发消息到所有绑定队列

1、Direct Exchange是RabbitMQ默认的交换机模型,也是最简单的模型,根据key全文匹配去寻找队列。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值