概述
- 大多应用中, 可以通过消息服务中间件来提升系统异步通信, 扩展解耦能力.
- 消息服务中的两个重要概念
- 消息代理(message broker)和目的地(destination)
- 当消息发送者发送消息时, 由消息代理接管, 消息代理保证消息传递到指定目的地.
- 消息队列主要有两种形式的目的地
- 队列(queue): 点对点消息通信.
- 主题(topic): 发布(publish) / 订阅(subscribe)消息通信
- 点对点式
- 消息发送者发送消息, 消息代理将其放入一个队列中, 消息接收者从队列中获取消息内容, 消息读取后被移除队列.
- 消息只有唯一的发送者和接收者, 但并不是说只能有一个接收者.
- 发布订阅式
- 发布者发送消息到主题, 多个接收者监听这个主题, 那么就会在消息到达同时收到消息.
- 举例
- JMS(Java Message Service): Java消息服务
- 基于JVM消息代理的规范, ActiveMQ, HornetMQ用它.
- AMQP
- 高级消息队列协议, 也是一个消息代理的规范, 并且兼容JMS
- RabbitMQ是基于AMQP实现的.
- Spring支持
- 有spring-jms, spring-rabbit提供支持
- 需要ConnectionFactory的实现来连接消息管理.
- 提供JmsTemplate, RabbitTemplate来发送消息
- @JmsListener, @RabbitListener注解在方法上监听消息代理发布的消息.
- @EnableJms, @EnableRabbit开启支持.
- Spring Boot自动配置
- JmsAutoConfiguration
- RabbitAutoConfiguration
SpringBoot整合RabbitMQ
posted @
2020-06-16 16:40
yellowstreak
阅读(
96)
评论()
编辑
收藏
举报