waitzkj 2020-07-25
介绍
MQ 全称为 Message Queue,即消息队列,RabbitMQ 是由 Erlang 语言开发,基于 AMQP(Advanced Message Queue Protocol ,高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛,RabbitMQ 官方地址 https://www.rabbitmq.com/
什么是 AMQP?
AMQP,即 AMQP(Advanced Message Queue Protocol ,高级消息队列协议),一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开发标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端中间件不同产品,不同的开发语言等条件的限制,Erlang 中的实现有 RabbitMQ 等
JMS 是什么?
即 Java 消息服务,Java 消息服务(Java Message Service,JMS)应用程序接口是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS 提供支持
应用场景
1、任务异步处理
将不需要同步处理的并且耗时长的操作由队列通知消息接收方进行异步处理,提高了应用程序的响应时间
2、应用程序解耦合
MQ 相当于一个中介,生产方通过 MQ 与消费方进行交互,它将应用程序进行解耦合
市场上还有哪些 MQ?
ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ、Redis
为什么使用 RabbitMQ?
使用简单,功能强大
基于 AMQP 协议
社区活跃,文档完善
高并发性能好,这主要得益于 Erlang 语言
SpringBoot 默认已集成 RabbitMQ
快速入门
RabbitMQ 的工作原理
组成部分说明如下:
Broker:消息队列服务进程,此进程包括两个部分:Exchange 和 Queue
Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过滤
Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的消费方
Producer:消息生产者,即生产方客户端,生产方客户端将消费发送到 MQ
Consumer:消息消费者,即消费方客户端,接收 MQ 妆发的消息
消息发布接收流程
发送消息
1、生产者和 Broker 建立 TCP 连接
2、生产者和 Broker 建立通道
3、生产者通过通道消息发送 Broker,由 Exchange 将消息进行转发
4、Exchange 将消息转发到指定的 Queue(队列)
接收消息
1、消费者和 Broker 建立 TCP 连接
2、消费者和 Broker 建立通道
3、消费者监听指定的 Queue(队列)
4、当有消息到达 Queue 时 Broker 默认将消息推送给消费者
5、消费者接收到消息
————————————————
版权声明:本文为CSDN博主「Woo_home」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Woo_home/article/details/106354749
https://blog.csdn.net/Woo_home/article/details/106354749?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159564261919725250146812%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159564261919725250146812&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-3-106354749.pc_first_rank_v2_rank_v28&utm_term=RabbitMQ&spm=1018.2118.3001.4187