SpringBoot整合ActiveMQ

SpringBoot整合消息

消息队列

​ MQ(Message Queue)消息队列,是基础数据结构中先进先出的一种数据结构,指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递,生产者生产消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者定义相应的队列,由MQ服务端给其推送消息。

MQ作用

​ 1、流量消峰

​ 在大量请求时(秒杀场景),使用消息队列做缓冲处理,削弱峰值流量,防止系统在短时间内被峰值流量冲垮。

​ 2、应用解耦

​ 使用消息MQ后,只需要保证消息格式不变,不需要关系发布者及消费者之间的关系,这两者不需要被彼此联系

​ 3、异步处理

​ 对于消息的生产者与消费者的工作模式,还可以将消息划分成两种模式,同步消费与异步消息。

Java处理消息的规则

目前企业级开发中广泛使用的消息处理技术共三大类,具体如下:

  • JMS
  • AMQP
  • MQTT

这些都是规范,就像JDBC技术,是个规范,开发针对规范开发,运行还有靠实现类,例如MySQL提供了JDBC的实现,最终运行靠的还是实现,并且这三类规范都是针对异步消息进行处理的。也符合消息的设计本质,处理异步的业务。

JMS

​ JMS(Java message Service),这时一个规范,作用等同于JDBC规范,提供了与消息服务相关的API接口。

JMS消息模型

​ JMS规范中规范了消息由两种模型:点对点模型发布订阅模型

在这里插入图片描述

点对点模型:peer-2peer,生产者会将消息发送到一个保存消息的容器中,通常使用队列模型,使用队列保存消息。一个队列的消息 只能被一个消费者消费,或者未被消费导致超时。这种模型下,生产者和消费者是一对一绑定的。

发布订阅模型:publish-subscribe,生产者将消息发送到一个保存消息的容器中,也是使用队列模型保存,但是消息可以被多个消费 者消费,生产者和消费者完全独立,相互不需要感知对方的存在。

​ 以上这种分类是从消息的生产和消费过程来区分,针对消息所包含的信息不同,还可以进行不同类别的划分。

JMS消息种类

​ 根据消息中包含的数据种类划分,可以将消息划分成6种消息。

  • TextMessage
  • MapMessage
  • ByteMessage
  • StreamMessage
  • ObjectMessage
  • Message(只有消息头和属性)

​ JMS主张不同种类的消息,消费方式不同,可以根据使用需要选择不同种类的消息,例如:ActiveMQ、Redis、HornetMQ。但是也 有一些不太规范的实现。参考JMS的标准设计,但是又不完全满足其规范,例如:RabbitMQ、RocketMQ。

AMQP

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桑落兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值