Springboot整合RabbitMQ详解

本文详细介绍了如何在Springboot中整合RabbitMQ,包括RabbitMQ的特点、AMQP模型、消息确认机制、安装过程、Spring AMQP的主要对象类和参数、以及Springboot整合AMQP的注解使用,如@RabbitListener和@RabbitHandler。还探讨了RabbitMQ的结构,如交换机类型、队列、虚拟主机、消息确认和持久化等高级特性,如死信队列、延迟队列、优先级队列和灾难防护措施。
摘要由CSDN通过智能技术生成

RabbitMQ

文章目录

本文结合了网上一些资料借鉴,如有侵权请指出。

RabbitMQ的特点

RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件。首先要知道一些RabbitMQ的特点,官网可查:

  • 可靠性。支持持久化,传输确认,发布确认等保证了MQ的可靠性。
  • 灵活的分发消息策略。这应该是RabbitMQ的一大特点。在消息进入MQ前由Exchange(交换机)进行路由消息。
    分发消息策略有:简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式。
  • 支持集群。多台RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker。
  • 多种协议。RabbitMQ支持多种消息队列协议,比如 STOMP、MQTT 等等。
  • 支持多种语言客户端。RabbitMQ几乎支持所有常用编程语言,包括 Java、.NET、Ruby 等等。
  • 可视化管理界面。RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker。
  • 插件机制。RabbitMQ提供了许多插件,可以通过插件进行扩展,也可以编写自己的插件。

AMQP

AMQP模型

消息(message)被发布者(publisher)发送给交换机(exchange),然后交换机将收到的消息根据路由规则分发给绑定的队列(queue)。最后AMQP代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。

AMQP模型图

消息确认

从安全角度考虑,网络是不可靠的,接收消息的应用也有可能在处理消息的时候失败。基于此原因,AMQP模块包含了一个消息确认(message acknowledgements)的概念:当消息从队列投递给消费者的时候,消费者服务器需要返回一个ack(确认信息),当broker收到了确认才会将该消息删除;消息确认可以是自动的,也可以是由消费端手动确认。此外也支持生产端向broker发送消息得到broker的ack,从而针对做出响应逻辑。

AMQP是一个可编程的协议

某种意义上说AMQP的实体和路由规则是由应用本身定义的,而不是由消息代理定义。包括像声明队列和交换机,定义他们之间的绑定,订阅队列等等关于协议本身的操作。但是需要注意双方定义的冲突,否则会暴露出配置错误的问题。

RabbitMQ安装

Windows10安装

步骤
  • 到erlang官网下载win10版安装包。下载完成后傻瓜式安装。
  • 配置erlang环境变量

image-20211124135631736

image-20211124135719557

cmd输入erl验证安装是否成功,如下成功;ctrl+c退出

image-20211124135919422

  • 傻瓜式安装RabbitMQ服务。
    在RabbitMQ的gitHub项目中,下载window版本的服务端安装包
  • 进入安装目录,sbin目录下,执行:rabbitmq-plugins enable rabbitmq_management 命令安装管理页面的插件

image-20211124140316403

img

image-20211124140741917

Spring整合AMQP

官方中文文档

Spring AMQP (geekdoc.top)

GitHup翻译文档

GitHub - rockit-ba/spring-rabbit-: spring AMQP 实现: spring rabbit 官方中文文档翻译

Spring AMQP主要对象类及作用

作用

Queue

对应RabbitMQ中Queue

AmqpTemplate

接口,用于向RabbitMQ发送和接收Message

RabbitTemplate

AmqpTemplate的实现类

@RabbitListener

指定消息接收方,可以配置在类和方法上

@RabbitHandler

指定消息接收方,只能配置在方法上&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值