RabbitMQ学习-Seven
再SpringBoot中使用MQ
1.创建SpringBoot项目
除了我们平常使用的一些工具依赖,还需要选择这个Spring for RabbitMQ依赖
2.需要在application.yml文件中进行配置
server:port :9090
spring:application:name:producerrabbitmq:host: 你的主机名port: 5672virtual-host: 虚拟主机名称username: adminpassword: admin123
3.测试使用
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;@RestController
public class TestController {@Resourceprivate TestService testService;@RequestMapping("test")public String test(String msg){testService.sendMsg(msg);return "success";}
}
@Service
public class TestService {@Resourceprivate AmqpTemplate amqpTemplate; // 注入RabbitMQ的模板对象,用于发送消息@Overridepublic void sendMsg(String msg) {// 发送消息到队列amqpTemplate.convertAndSend("queue1", msg);// 发送消息到交换机(订阅交换机,第二个参数为空)amqpTemplate.convertAndSend("wx1", "", msg);// 发送消息到交换机(路由交换机,第二个参数为路由key)amqpTemplate.convertAndSend("wx2", "a", msg);}
}
完善一下测试使用类
import javax.annotation.Resource;@Service
public class TestService {@Resourceprivate AmqpTemplate amqpTemplate;public void sendMsg(String msg) {if (msg.startsWith("q_")) {// 发送消息到队列amqpTemplate.convertAndSend("queue1", msg);} else if (msg.startsWith("f_")) {// 发送消息到交换机(订阅交换机)amqpTemplate.convertAndSend("ex1", "", msg);} else if (msg.startsWith("r_")) {// 发送消息到交换机(路由交换机)if (msg.startsWith("r_a")) {amqpTemplate.convertAndSend("ex2", "a", msg);} else if (msg.startsWith("r_b")) {amqpTemplate.convertAndSend("ex2", "b", msg);}}}
}
此时从浏览器发送请求:localhost:9090/test?msg=....就可以发送消息到队列中
4.然后创建消费者项目
前期步骤一致,只是配置文件的端口号进行变更
package com.qfedu.consumer.service;import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;@Service
//@RabbitListener(queues ={"queue1","queue2"})
// 首先通过RabbitListener注解监听队列
@RabbitListener(queues = "queue1")
public class ReceiveMsgService {// 然后通过RabbitHandler注解将队列中的数据作为入参使用@RabbitHandlerpublic void receiveMsg(String msg) {System.out.println("接收Msg:" + msg);}// 另一个可能的消息接收方法,处理字节数组类型的数据//@RabbitHandler//public void receiveMsg(byte[] bs) {// // 处理字节数组的逻辑//}
}
此时就在SpringBoot中实现了生产者发送消息,然后消费者消费消息!!
相关文章:
RabbitMQ学习-Seven
再SpringBoot中使用MQ 1.创建SpringBoot项目 除了我们平常使用的一些工具依赖,还需要选择这个Spring for RabbitMQ依赖 2.需要在application.yml文件中进行配置 server:port :9090 spring:application:name:producerrabbitmq:host: 你的主机名port: 5672virtual-…...
中科亿海微SoM模组——波控处理软硬一体解决方案
本文介绍的波控处理软硬一体解决方案主要是面向相控阵天线控制领域,波控处理通过控制不同天线组件的幅相来调整天线波束的方向和增益,实现高精度角度控制和高增益。本方案由波控处理板、波控处理控制软件算法和上位机软件共同构成。波控处理SoM模组原型样…...
开源法律、政策和实践
#一切皆可开源# 木兰社区对《Open Source Law,Policy and Practice 》这本书的第二版进行了翻译,并发布在了gitee上。这本书是对开源文化、开源政策、法律的全面介绍。目录如下: 1 Open Source as Philosophy,Methodology,and CommerceUsing Law with …...
【计算视觉算法与应用】金字塔,下采样Gaussian Pyramid. 上采用 Laplacian Pyramid (code: py)
金字塔(Pyramid)在图像处理中主要用于多尺度分析和图像压缩。常见的图像金字塔有两种: 高斯金字塔(Gaussian Pyramid):用于下采样图像,生成分辨率逐渐降低的图像序列。拉普拉斯金字塔ÿ…...
基于BERT的语义分析实现
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
DNS查询工具
DNS查询工具是用于查询和获取域名相关信息的工具。通过这些工具,您可以获取到诸如IP地址、邮件服务器以及域名服务器等信息,这对于排查问题、设置域名配置以及确保网站正常运行都非常重要。 以下是五款常用的DNS记录查询工具: MxToolbox MxTo…...
ODB 框架
目录 概述 基本工作原理 映射C对象到数据库表 从数据库中加载对象 持久化C对象到数据库 ODB常用接口 表创建预处理 #pragma db Object table 数据表属性 id auto column(“xxx”) type("xxx") unique index null default&…...
Ubuntu WiFi检测
ubuntu检测到多个同名wifi,怎么鉴别假冒的wifi? 在Ubuntu中,如果检测到多个同名的Wi-Fi网络,可能存在假冒的Wi-Fi(例如“蜜罐”攻击)。以下是一些鉴别假冒Wi-Fi的方法: 检查信号强度:…...
QILSTE H4-108TCG高亮纯lu光LED灯珠 发光二极管LED
型号:H4-108TCG 在电子领域,H4-108TCG LED以其卓越的性能和微小的尺寸1.6x0.8x0.4mm脱颖而出。这款高亮纯绿光LED,采用透明平面胶体,符合EIA标准包装,是环保产品,符合ROHS标准。防潮等级为Level 3…...
IP与“谷子”齐飞,阅文“乘势而上”?
爆火的“谷子经济”,又捧出一只“潜力股”。 近日,阅文集团股价持续上涨,5日累计涨幅达13.20%。这其中,周三股价一度大涨约15%至29.15港元,强势突破20日、30日、120日等多根均线,市值突破280亿港元关口。 …...
Java阶段三05
第3章-第5节 一、知识点 动态代理、jdk动态代理、cglib动态代理、AOP、SpringAOP 二、目标 理解什么是动态代理和它的作用 学会使用JAVA进行动态代理 理解什么是AOP 学会使用AOP 理解什么是AOP的切入点 三、内容分析 重点 理解什么是动态代理和它的作用 理解什么是AO…...
C# yield 关键字
文章目录 前言一、yield 关键字的语法形式及使用场景(一)yield return(二)yield break 二、yield 关键字的工作原理三、yield 关键字的优势与应用场景(一)优势(二)应用场景 前言 在 …...
SpringBoot开发——结合Nginx实现负载均衡
文章目录 负载均衡介绍介绍Nginx实现负载均衡的示例图:负载均衡策略1.Round Robin:2.Least Connections:3.IP Hash :4.Generic Hash:5.Least Time (NGINX Plus only)6.Random:Nginx+SpringBoot实现负载均衡环境准备Nginx 配置负载均衡测试负载均衡介绍 介绍 在介绍Nginx的负…...
RabbitMQ在手动消费的模式下设置失败重新投递策略
最近在写RabbitMQ的消费者,因为业务需求,希望失败后重试一定次数,超过之后就不处理了,或者放入死信队列。我这里就达到重试次数后就不处理了。本来以为很简单的,问了kimi,按它的方法配置之后,发…...
TsingtaoAI具身智能高校实训方案通过华为昇腾技术认证
日前,TsingtaoAI推出的“具身智能高校实训解决方案-从AI大模型机器人到通用具身智能”基于华为技术有限公司AI框架昇思MindSpore,完成并通过昇腾相互兼容性技术认证。 TsingtaoAI&华为昇腾联合解决方案 本项目“具身智能高校实训解决方案”以实现高…...
【Linux】线程池设计 + 策略模式
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 线程池 1-1 ⽇志与策略模式1-2 线程池设计1-3 线程安全的单例模式1-3-1 什么是单例模式1-3-2 单例模式的特点1-3-3 饿汉实现⽅式和懒汉实现⽅式1-3-4 饿汉…...
网络原理(一):应用层自定义协议的信息组织格式 HTTP 前置知识
目录 1. 应用层 2. 自定义协议 2.1 根据需求 > 明确传输信息 2.2 约定好信息组织的格式 2.2.1 行文本 2.2.2 xml 2.2.3 json 2.2.4 protobuf 3. HTTP 协议 3.1 特点 4. 抓包工具 1. 应用层 在前面的博客中, 我们了解了 TCP/IP 五层协议模型: 应用层传输层网络层…...
Python-链表数据结构学习(1)
一、什么是链表数据? 链表是一种通过指针串联在一起的数据结构,每个节点由2部分组成,一个是数据域,一个是指针域(存放下一个节点的指针)。最后一个节点的指针域指向null(空指针的意思࿰…...
性能优化经验:关闭 SWAP 分区
关闭 SWAP 分区,特别是在性能敏感场景(如 Elasticsearch 服务)中,主要与 SWAP 的工作机制和对应用性能的影响有关。以下是详细原因: 1. SWAP 的工作机制导致高延迟 SWAP 是什么: SWAP 分区是系统将物理内存…...
SpringBoot小知识(2):日志
日志是开发项目中非常重要的一个环节,它是程序员在检查程序运行的手段之一。 1.日志的基础操作 1.1 日志的作用 编程期调试代码运营期记录信息: * 记录日常运营重要信息(峰值流量、平均响应时长……) * 记录应用报错信息(错误堆栈) * 记录运维过程数据(…...
java虚拟机——jvm是怎么去找垃圾对象的
JVM(Java虚拟机)通过特定的算法和机制来查找和识别垃圾对象,以便进行垃圾回收。以下是JVM查找垃圾对象的主要方法和步骤: 一、可达性分析法 JVM使用可达性分析法来识别垃圾对象。这种方法从一组称为“GC Roots”的对象作为起始点…...
Macos远程连接Linux桌面教程;Ubuntu配置远程桌面;Mac端远程登陆Linux桌面;可能出现的问题
文章目录 1. Ubuntu配置远程桌面2. Mac端远程登陆Linux桌面3. 可能出现的问题1.您用来登录计算机的密码与登录密钥环里的密码不再匹配2. 找不到org->gnome->desktop->remote-access 1. Ubuntu配置远程桌面 打开设置->共享->屏幕共享。勾选允许连接控制屏幕&…...
hadoop_HA高可用
秒懂HA HA概述HDFS-HA工作机制工作要点元数据同步参数配置手动故障转移自动故障转移工作机制相关命令 YARN-HA参数配置自动故障转移机制相关命令 附录Zookeeper详解 HA概述 H(high)A(avilable): 高可用,意味着必须有容错机制,不能因为集群故障…...
【MySQL】MySQL中的函数之JSON_ARRAY_APPEND
在 MySQL 8.0 及更高版本中,JSON_ARRAY_APPEND() 函数用于在 JSON 数组的指定位置追加一个或多个值。这个函数非常有用,特别是在你需要在 JSON 数组的末尾或特定位置添加新的元素时。 基本语法 JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ..…...
torch.is_nonzero(input)
torch.is_nonzero(input) input: 输入张量 若输入是 不等于零的单元素张量 则返回True,否则返回False 不等于零的单元素张量:torch.tensor([0.]) 或 torch.tensor([0]) 或 torch.tensor([False])单元素张量: 只有一个数 的张量 import torch print(t…...
文本搜索程序(Qt)
头文件 #ifndef TEXTFINDER_H #define TEXTFINDER_H#include <QWidget> #include <QFileDialog> #include <QFile> #include <QTextEdit> #include <QLineEdit> #include <QTextStream> #include <QPushButton> #include <QMess…...
使用 Python 剪辑视频的播放速度
要使用 Python 调整视频的播放速度,可以利用 moviepy 库中的 fx(特效)模块来实现这一功能。通过 moviepy.editor 中的 VideoFileClip 类和 fx.speedx 函数,可以轻松地调整视频的播放速度。 安装 moviepy 首先,确保已…...
深入理解计算机系统,源码到可执行文件翻译过程:预处理、编译,汇编和链接
1.前言 从一个高级语言到可执行程序,要经过预处理、编译,汇编和链接四个过程。大家可以思考下,为什么要有这样的过程? 我们学习计算机之处,就应该了解到,计算机能够识别的只有二进制语言(这是…...
Linux开发者的CI/CD(11)jenkins变量
文章目录 1. **环境变量 (Environment Variables)**常见的环境变量:示例:2. **构建参数 (Build Parameters)**常见的构建参数类型:示例:3 **在 `stages` 块内定义局部变量**示例:使用 `script` 步骤定义局部变量4 变量引用陷阱在 Jenkins 中,变量是自动化流程中非常重要的…...
深度学习视频编解码开源项目介绍【持续更新】
DVC (Deep Video Compression) 介绍:DVC (Deep Video Compression) 是一个基于深度学习的视频压缩框架,它的目标是通过深度神经网络来提高视频编码的效率,并降低比特率,同时尽可能保持视频质量。DVC 是一个端到端的神经网络模型&…...
茶文化网站建设毕业论文/福州百度推广排名
将一条公网链路用TCP隧道分割成多个段,每一个段根据该段的网络特征使用不同的拥塞控制算法,然后把多条如此分割的长链路合并在一起,这就是一个overlay网络,SDWAN数据面核心不过如此。由于使用TCP搭建隧道,所有的丢包都…...
安徽柱石建设有限公司网站/百度搜索使用方法
嘿嘿,午餐对于我们来说可以说是一件奢侈品,更不用说和公司的同事坐下来一起吃饭聊天了。早的在客户那里如果工作没做完,即使是客户在那里吃得正hight,你还是得忍着把工作做完,才能走。如果中午能在13点前吃完饭&#x…...
手表大全网站/河南网站优化公司哪家好
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 建造者模式和工厂模式都是用来创建对象的。建造者模式适用于一个对象的内部有特别多的属性需要外部来…...
鹤壁市淇县网站建设/推广平台app
GobangJava语言编写的多人联网五子棋对战平台。目录结构Server/ 服务器。入口为Server.java。Client/ 客户端。入口为Client.java。com.model/ 基于Java的对象序列化功能实现的客户端和服务器之间自定义的应用层通信协议。使用说明(JDK>1.8)编译运行Server.java启动服务器端…...
私人路由器做网站/百度指数网站
非极大值抑制(Non-max suppression) 非极大值抑制,简称为NMS算法,英文为Non-Maximum Suppression。其思想是搜素局部最大值,抑制极大值。非极大值抑制,在计算机视觉任务中得到了广泛的应用,例如…...
深圳网站的优化公司/热门关键词
2019独角兽企业重金招聘Python工程师标准>>> 一、准备数据 1.去官网下载最新的solr。当前最新为4.5版本。 2.准备tomcat7.(下载tomcat7) 二、配置solr。 1.将下载的solr4.5解压得到: 2.将 example\solr-webapp 下的solr.war…...