写在前面:
继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!
3.5.4 消息
3.5.4.1 简述
- 消息发送方:生产者
- 消息接收方:消费者
- 消息:分为同步消息和异步消息,主流异步消息
3.5.4.2 异步消息
3.5.4.2.1 JMS
- JMS:JavaServiceMessage,一个规范,等同于JDBC规范,提供了与消息服务有关的API接口
- 消费模型有
- peer-2-peer:点对点模型,消息发送到一个队列中,队列保存消息,且只能由一个消费者消费或者超时
- publish-subscribe:发布订阅模型,消息可以被多个消费者消费,生产者和消费者完全独立,不需要感知对方的存在 - 消息种类有:TextMessage,MapMessage,ByteMessage,StreamMessage,ObjectMessage等
- 实现产品:ActivateMQ ,Redis,HornetMQ,RabbitMQ,RocketMQ(没有完全遵守规范)
3.5.4.2.2 AMQP
- AMQP,Advanced Message Queuing Protocol,一种协议(高级消息队列协议),规范了网络交换的数据格式,兼容JMS
- 优点:跨平台性,服务器供应商,生产者和消费者可用不同语言实现
- 消息类型:direct exchange,fanout exchange,topic exchange,headers exchange,system exchange
3.5.4.2.3 MQTT
- MQTT Message Queuing Telemetry Transport 消息队列遥测传输,专为小设备设计,是物联网生态系统主要成分之一
- 拓展:Kafka,一种高吞吐量的分布式发布订阅消息系统,提供实时消息功能
3.5.4.3 消息案例-发送短信通知
3.5.4.3.1 案例
购物订单中的短信通知
3.5.4.3.2 案例原理实现(以下整合均使用此项目)
- 创建空web项目
- 编写接口层OrderService和MessageService及其实现,如图
- 编写控制层,如图
- 运行,结果如图
3.5.4.3 SpringBoot整合ActivateMQ
3.5.4.3.1 ActivateMQ安装
- 下载ActivateMQ并解压缩,点击网站进行下载,这里用的5.16.5版
- 启动服务,如图
- 访问地址为
http://127.0.0.1:8161/admin/index.jsp
,账号密码均为admin
3.5.4.3.2 整合
- 添加坐标,如图
- 配置yml,如图
- 编写新接口ActivateMQ并注释掉之前的接口实现中的@Service,如图
- 运行,结果如图
- 编写监听器实现自动发送消息,如图
- 运行,如图