Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用

写在前面
继续记录自己的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及其实现,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第1张图片
  • 编写控制层,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第2张图片
  • 运行,结果如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第3张图片
    ![[Pasted image 20221011142649.png]]
    Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第4张图片
3.5.4.3 SpringBoot整合ActivateMQ
3.5.4.3.1 ActivateMQ安装
  • 下载ActivateMQ并解压缩,点击网站进行下载,这里用的5.16.5版
  • 启动服务,如图![[Pasted image 20221011143551.png]]
  • 访问地址为http://127.0.0.1:8161/admin/index.jsp,账号密码均为admin
3.5.4.3.2 整合
  • 添加坐标,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第5张图片
  • 配置yml,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第6张图片
  • 编写新接口ActivateMQ并注释掉之前的接口实现中的@Service,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第7张图片
  • 运行,结果如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第8张图片
  • 编写监听器实现自动发送消息,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第9张图片
  • 运行,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第10张图片
3.5.4.4 SpringBoot整合RabbitMQ
3.5.4.4.1 RabbitMQ安装
  • 基于Erlang语言编写,需要安装Erlang
  • 点击下载Erlang,选择24.2 64位版本下载后傻瓜式安装并重启电脑,因为依赖Windows组件
  • 配置环境变量,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第11张图片
    Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第12张图片
  • 点击下载安装RabbitMQ,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第13张图片
    ,然后自己安装即可。
    ,下载后傻瓜式安装即可,最后重启电脑
3.5.4.4.2 启动服务
  • 使用管理员权限启动命令行并进入到安装路输入命令rabbitmq-service.bat -start,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第14张图片
  • 查看插件状态,命令rabbitmq-plugins.bat list,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第15张图片
    ,图中所标为即将使用的管理后台插件
  • 开启插件,服务端口:5672,管理后台端口:15672,命令rabbitmq-plugins.bat enable rabbitmq_management,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第16张图片
  • 浏览器查看后台,地址栏输入http://localhost:15672/即可,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第17张图片
  • 键入用户名guest,密码guest登录后如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第18张图片
3.5.4.4.3 直连Direct模式整合
  • 导入坐标,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第19张图片
  • 配置yml,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第20张图片
  • 配置消息队列与交换机,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第21张图片
  • 编写实现类,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第22张图片
  • 编写消息接收监听器,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第23张图片
  • 运行发送请求后如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第24张图片
3.5.4.4.4 主题Topic模式整合
  • 导坐标和配置yml与前面一样,不再赘述
  • 配置消息队列,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第25张图片
  • 编写实现类,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第26张图片
  • 消费者监听,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第27张图片
  • 运行如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第28张图片
    ,即任何topic.xx.id都会被配置里的topic.*.id匹配到
  • 更改,如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第29张图片
    ,再次运行后如图Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合,RabbitMQ又如何使用_第30张图片
    ,两个队列都会收到消息

你可能感兴趣的:(Java,spring,boot,java,java-rabbitmq)