美文网首页
消息中间件之基本概述

消息中间件之基本概述

作者: 与乐为乐 | 来源:发表于2020-06-27 23:06 被阅读0次
1. 大多应用中,可以通过消息服务中间件来提升系统异步通信、扩展解耦合能
2. 消息服务中两重要多概念
  • 消息代理(message broker)
  • 目的地(destination)

当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。

3. 消息队列主要有两种形式到目的地
  • 队列(queue): 点对点消息通信(point-to-point)
  • 主题(topic): 发布(publish)/ 订阅(subscribe)消息通信
4. 点对点
  • 消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容,消息读取后被移除队列
  • 消息只有唯一到发送者和接受者,但并不是说只能有一个接受者
5. 发布订阅式
  • 发送者 (发布者)发送消息到主题,多个接受者(订阅者)监听(订阅)这个主题,那么就会在消息到达时同时收到消息
6. JMS(Java Message Service)JAVA消息服务
  • 基于JVM消息代理的规范。ActiveMQ、HornetMQ是JMS实现
7. AMQP(Advanced Message Queuing Protocol)
  • 高级消息队列协议,也是一个消息代理的规范,兼容JMS
  • RabbitMQ是AMQP的实现
8. Spring支持
  • spring-jms提供两对JMS的支持
  • spring-rabbit提供了对AMQP的支持
  • 需要ConnectionFactory的实现来连接消息代理
  • 提供JmsTemplate、RabbitTemplate来发送消息
  • @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发布的消息
  • @EnableJms、@EnableRabbit开启支持
9. Spring Boot自动配置
  • JmsAutoConfiguration
  • RabbitAutoConfiguration
作用:

通过消息服务中间件来提升系统异步通信、扩展解耦能力
当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地

应用场景:
1.异步处理

用户注册操作和消息处理并行,提高响应速度


image.png
2.应用解耦合

在下单时库存系统不能正常使用。也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦

image.png
3.流量削峰

用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面

秒杀业务根据消息队列中的请求信息,再做后续处理


image.png

相关文章

网友评论

      本文标题:消息中间件之基本概述

      本文链接:https://www.haomeiwen.com/subject/itkbfktx.html