Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合

news2025/2/28 15:41:22

写在前面
继续记录自己的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及其实现,如图![[Pasted image 20221011142510.png]]
  • 编写控制层,如图![[Pasted image 20221011142549.png]]
  • 运行,结果如图![[Pasted image 20221011142634.png]]
    ![[Pasted image 20221011142649.png]]
    ![[Pasted image 20221011142712.png]]
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 整合
  • 添加坐标,如图![[Pasted image 20221011145417.png]]
  • 配置yml,如图![[Pasted image 20221011153001.png]]
  • 编写新接口ActivateMQ并注释掉之前的接口实现中的@Service,如图![[Pasted image 20221011152755.png]]
  • 运行,结果如图![[Pasted image 20221011153520.png]]
  • 编写监听器实现自动发送消息,如图![[Pasted image 20221011154105.png]]
  • 运行,如图![[Pasted image 20221011154122.png]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣(LeetCode)29. 两数相除(C++)

快速乘 题解只使用了 intintint 。 万恶的 INT_MININT\_MININT_MIN,怎么处理?打不过就加入——被除数和除数转为负数计算 。 xxx 除以 yyy ,等于从 xxx 中拿出若干个 yyy 。 从 xxx 中拿出 yyy 的数量,就是 xyx\div yxy 的商。 y…

Allegro差分自动添加回流地孔操作指导

Allegro差分自动添加回流地孔操作指导 Allegro自带给差分添加回流地孔的功能,具体操作如下 点击connect命令,任意拉一对差分 鼠标右击,选择Return Path。。。,选择settings 会弹出设置的对话框,Assign net name给孔分配一个网络,一般是GND, Return Path via 选择添加…

2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第五套

📚文章目录 🎯关于1X标准 🎯关于中级考点 ⏩💻答案速查 理论题(满分100分),包括单选题、多选题、判断题。 📑一、单选题(每小题2分,共30小题,共60分) &…

Docker的基础命令

1.查找可用的镜像 docker search 镜像名 例:docker search nginxdocker search mysql2.拉取官方镜像(及下载镜像) docker pull 镜像名:标签例:docker pull nginx #表示现在最新版本的nginx镜像docker pull nginx:1.14…

使用frida发送微信消息给好友

前言 之前说过怎么用python来发送微信文本消息,原理大概就是构造内存机器码。其实frida也可以做类似操作,构造数据和机器码,然后调用。我就不重复操作了,这里说下另一种方法。 想使用frida来发送消息这个想法很早之前就有了&…

SQLlite

SQLlite ​ SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 一、什么是 SQLite ​ SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&…

Webpack 5 超详细解读(三)

21.babel-loader 使用 使用babel-loader对js文件进行处理,在lg.Webpack.js配置文件中配置js文件规则。 使用单独的插件进行转换 使用预设进行转换 使用babel.config.js配置文件进行babel配置 const path require(path) const CopyWebpackPlugin require(copy-W…

解决哈希冲突的方案

什么是哈希表 一种实现关联数组抽象数据类型的数据结构,这种结构可以将关键码映射到给定值。简单来说哈希表(key-value)之间存在一个映射关系,是键值对的关系,一个键对应一个值。 什么是哈希冲突 当两个不同的数经过…

基于 Text-CNN 的情感分析(文本分类)----概念与应用

文章目录基于Text-CNN情感分析卷积的基本概念Text-CNN的核心思想实现数据预处理批量处理操作--填充与截断拆分训练集与测试集定义Text-CNN模型设计模型定义与训练参数训练并评估模型结语基于Text-CNN情感分析 大家都知道,CNN(Convolutional Neural Network) 是深度…

非近轴衍射分束器的设计与严格分析

摘要 直接设计非近轴衍射分束器仍然是很困难的。由于有相对较大的分束角,元件的特征尺寸一般等于或小于工作波长。因此,它通常超出近轴建模方法的范围。在此示例中,将迭代傅里叶变换算法(IFTA)和薄元件近似&#xff08…

在线的MySQL数据库表结构对比工具

在项目部署上线前,测试版和正式版的数据库表结构做过哪些变更,如果没有做好实时记录,那么就需要对比找出差异,否则代码部分更新后,可能导致功能异常。 数据库表结构对比的工具很多,但是为了方便部署同步的…

Python 算法:线性回归及相关公式推导

0 前言 本文以一个小小的案例展开,主要讲解了线性回归的步骤、常用的两种求最优解的方法(最小二乘法和sklearn回归算法及算法原理)及相关函数、公式的过程推导。 相关环境:Windows 64位 Python3.9 scikit-learn1.0.2pandas1.4.2…

怎么在VMware上安装Linux?

推荐教程:Linux零基础快速入门到精通 下载CentOS操作系统 首先,我们需要下载操作系统的安装文件,本次使用CentOS7.6版本进行学习: https://vault.centos.org/7.6.1810/isos/x86_64/ (最后的/不要漏掉) •或者直接…

02、Spring中的Bean实例化、作用域、生命周期及装配方式介绍

简介:本笔记主要介绍以下几点 1、Bean的常见属性及其子元素 2、实例化Bean的三种方式 3、Bean的生命周期和作用域 4、Bean的三种装配方式 1、Bean的配置 Spring简单来说就是一个大工厂,这个工厂负责创建和管理Spring容器中的Bean对象,如果要使…

基于深度学习的人脸表情识别的AR川剧变脸(一)

1、摘要 本项目分为两部分,第一个部分是人脸表情识别任务,第二部分是根据表情变化不同AR脸谱效果。 本文将第一部分,如何使用Keras训练一个人脸表情识别的卷积神经网络。 2、数据集处理 数据集我们使用FER2013PLUS人脸表情识别数据集&…

Spring Boot如何进行监控项目/SpringBoot Admin监控程序怎么用/监控程序可以监控到哪些信息

写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.6 监控 3.6.1 意义 监控服务是否宕机监控服务运…

Hive数据定义语言-DDL-入门基础(含四个实践案例)

1. 概述 数据定义语言DDL,是SQL语言集中对数据库内部的对象结构进行创建、删除、修改等的操作语言,这些数据库对象包括database、table、view、index等。DDL核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。在某些上下文中&…

Docker ENV 与 ARG 详解

Docker Env 与 ARG 详解 Env 与ARG 差异可以用下面一张图来表示 ENV 使用说明 ENV 变量只能在容器运行时,生效 如果想在执行命令的时候,使用ENV变量需要在shell 模式下采用生效,比如我们运行spring boot 应用, 其中JAVA_OPTS 变量通过doc…

德国跨国汽车巨头大陆集团遭LockBit勒索软件组织攻击

据BleepingCompuer11月3日消息,知名勒索软件组织LockBit宣布他们对德国跨国汽车集团大陆集团( Continental) 发动了网络攻击。 LockBit声称,他们窃取了大陆集团系统中的一些数据,如果不能在11 月 4 日 15:45:36&#x…

Docker基本管理

一、Docker概述 1.什么是Docker 是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源; 是在Linux容器里运行应用的开源工具; 是一种轻量级的“虚拟机”; Docker的容器技术可以在一台主机上轻松为任何应用创建一个…