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模块包含了一个消息确认(message acknowledgements)的概念:当消息从队列投递给消费者的时候,消费者服务器需要返回一个ack(确认信息),当broker收到了确认才会将该消息删除;消息确认可以是自动的,也可以是由消费端手动确认。此外也支持生产端向broker发送消息得到broker的ack,从而针对做出响应逻辑。
AMQP是一个可编程的协议
某种意义上说AMQP的实体和路由规则是由应用本身定义的,而不是由消息代理定义。包括像声明队列和交换机,定义他们之间的绑定,订阅队列等等关于协议本身的操作。但是需要注意双方定义的冲突,否则会暴露出配置错误的问题。
RabbitMQ安装
Windows10安装
步骤
- 到erlang官网下载win10版安装包。下载完成后傻瓜式安装。
- 配置erlang环境变量
cmd输入erl验证安装是否成功,如下成功;ctrl+c退出
- 傻瓜式安装RabbitMQ服务。
在RabbitMQ的gitHub项目中,下载window版本的服务端安装包 - 进入安装目录,sbin目录下,执行:rabbitmq-plugins enable rabbitmq_management 命令安装管理页面的插件
- 双击rabbitmq-server.bat启动脚本或者在sbin目录下执行:rabbitmq-server start,然后打开服务管理可以看到RabbitMQ正在运行。
- 打开浏览器输入http://localhost:15672,账号密码默认是:guest/guest
Spring整合AMQP
官方中文文档
GitHup翻译文档
GitHub - rockit-ba/spring-rabbit-: spring AMQP 实现: spring rabbit 官方中文文档翻译
Spring AMQP主要对象类及作用
类
作用
Queue
对应RabbitMQ中Queue
AmqpTemplate
接口,用于向RabbitMQ发送和接收Message
RabbitTemplate
AmqpTemplate的实现类
@RabbitListener
指定消息接收方,可以配置在类和方法上
@RabbitHandler
指定消息接收方,只能配置在方法上&#x