当前位置: 首页 > news >正文

RabbitMQ消息模型之Simple消息模型

simple消息模型

生产者
package com.example.demo02.mq.simple;import com.example.demo02.mq.util.ConnectionUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;import java.io.IOException;/*** @author Allen* 4/10/2024 8:07 PM* @version 1.0* @description: 简单模型-生产者*/
public class SimpleSender {public static void main(String[] args) throws Exception {// 1、创建连接Connection connection = ConnectionUtils.getConnection();// 2、创建通道Channel channel = connection.createChannel();// 3、声明队列:队列可以缓存数据、mq的交换机不能存储数据 simple模型使用的是默认交换机// 参数1:队列名称 参数2:是否持久化 参数3:是否排他性 参数4:是否自动删除 参数5:其他属性channel.queueDeclare("simple_queue", false, false, false, null);// 4、发送消息:发送到队列中// 在simple模型中   参数1:交换机 参数2:队列名称 参数3:传递消息额外设置 参数4:消息的具体内容(任意数据类型)String msg = "hello rabbitmq";channel.basicPublish("", "simple_queue", null, msg.getBytes());// 5、关闭通道channel.close();// 6、关闭连接connection.close();}
}
消费者
package com.example.demo02.mq.simple;import com.example.demo02.mq.util.ConnectionUtils;
import com.rabbitmq.client.*;import java.io.IOException;/*** @author Allen* 4/10/2024 8:59 PM* @version 1.0* @description: 简单模型-消费者*/
public class SimpleReciver {public static void main(String[] args) throws Exception {// 1、创建连接Connection connection = ConnectionUtils.getConnection();// 2、创建通道Channel channel = connection.createChannel();// 3、声明队列:如果已声明可以忽略// 4、监听队列:channel.queueDeclare("simple_queue", false, false, false, null);Consumer consumer = new DefaultConsumer(channel){// 消息的具体处理逻辑// 消费者接收到消息后调用此方法// 如果AutoAck为true,此方法一旦被调用,消息会被确认@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("消费者接收到消息:"+new String(body));/*channel.basicReject();    //拒绝消息,可以丢弃消息,也可以重新入队channel.basicNack();      //不确认消息,可以设置是否重新入队*/channel.basicAck(envelope.getDeliveryTag(),false);         //手动确认消息,参数1:消息的标识,参数2:是否开启多个消息同时确认}};
/*        参数1:队列名称 参数2:是否自动确认 参数3:消费者队列名称:消费哪个队列的消息AutoAck:是否自动确认,如果为true,表示消息一旦被接收,自动向mq回复接收到,mq会删除消息,如果为false,需要手动确认,如果消费者挂掉,消息会被重回队列Consumer:消费者对象channel.basicConsume("simple_queue", true,consumer);避免消息丢失,手动确认
*/channel.basicConsume("simple_queue", false,consumer);}
}

在这里插入图片描述

Unacked : 消费者用了、但是没有告诉交换机、就是未确认的状态

当消息被消费了,且告诉交换机了,交换机就会将这个消息删除

相关文章:

RabbitMQ消息模型之Simple消息模型

simple消息模型 生产者 package com.example.demo02.mq.simple;import com.example.demo02.mq.util.ConnectionUtils; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection;import java.io.IOException;/*** author Allen* 4/10/2024 8:07 PM* versi…...

设计模式系列:简单工厂模式

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS二次开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 目录 定义 特点 使用场景 优缺点 (1) 优点…...

解决 windows+Ubuntu 时间不同步问题

本文所使用的 Ubuntu 系统版本是 Ubuntu 22.04 ! 如果你的电脑装了 Windows Ubuntu 系统,肯定会遇到时间不同步的问题。那么如何解决呢?参考步骤如下: # 步骤一:进入到 Ubuntu 系统# 步骤二:执行如下三条命令即可 sud…...

Learn SRP 01

学习链接:Custom Render Pipeline (catlikecoding.com) 使用Unity版本:Unity 2022.3.5f1 1.A new Render Pipeline 1.1Project Setup 创建一个默认的3D项目,项目打开后可以到默认的包管理器删掉所有不需要的包,我们只使用Unit…...

NL2SQL进阶系列(4):ConvAI、DIN-SQL、C3-浙大、DAIL-SQL-阿里等16个业界开源应用实践详解[Text2SQL]

NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL] NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2)&#xff1a…...

Python统计分析库之statsmodels使用详解

概要 Python statsmodels是一个强大的统计分析库,提供了丰富的统计模型和数据处理功能,可用于数据分析、预测建模等多个领域。本文将介绍statsmodels库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装statsmodels库非常简单,可以使用pip命令进行安装:…...

A Learning-Based Approach for IP Geolocation(2010年)

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:185 Eriksson B, Barford P, Sommers J, et al. A learning-based approach for IP geolocation[C]//Passive …...

高创新 | [24年新算法]NRBO-XGBoost回归+交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测

高创新 | [24年新算法]NRBO-XGBoost回归交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测 目录 高创新 | [24年新算法]NRBO-XGBoost回归交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现 [24年新算…...

Web APP设计:将多个相近的机器学习模型融合到一个Web APP中

将多个相近的机器学习模型融合到一个Web APP中 FUSE-ML是一个用于预测腰椎融合术后效果的APP,它可以做出三个不同的结论,分别评价术后的腰痛、腿痛和日常功能是否提高。 这估计是部署了三个机器学习模型在这个APP中,因为一个机器学习模型仅…...

网络爬虫:定义、应用及法律道德考量

网络爬虫技术在当今数据驱动的世界中发挥着重要作用。本文将从网络爬虫的定义和主要功能,其在业界的应用实例,以及涉及的法律和道德问题三个方面进行深入探讨。 1. 爬虫的定义和主要功能 网络爬虫,也称为网页爬虫或蜘蛛,是一种…...

(三)ffmpeg 解码流程以及函数介绍

一、视频解码流程 二、函数介绍 1.avformat_network_init 函数作用: 执行网络库的全局初始化。这是可选的,不再推荐。 此函数仅用于解决旧GnuTLS或OpenSSL库的线程安全问题。如果libavformat链接到这些库的较新版本,或者不使用它们&#…...

go work模块与go mod包管理是的注意事项

如下图所示目录结构 cmd中是服务的包,显然auth,dbtables,pkg都是为cmd服务的。 首先需要需要将auth,dbtables,pkg定义到go.work中,如下: 在这样在各个单独的go mod管理的模块就可以互相调用了。一般情况下这些都是IDE自动进行的,…...

华为OD-C卷-最长子字符串的长度(一)[100分]

题目描述 给你一个字符串 s,首尾相连成一个环形,请你在环中找出 o 字符出现了偶数次最长子字符串的长度。 输入描述 输入是一个小写字母组成的字符串 输出描述 输出是一个整数 备注 1 ≤ s.length ≤ 500000s 只包含小写英文字母用例1 输入 alolobo输出 6说明 最长子字…...

实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例

传统Wi-Fi网络所有终端设备都需要直接与路由器相连,这使得Wi-Fi的覆盖区域受到路由器位置的限制,可接入终端设备的数量也受到路由器容量的限制。而乐鑫ESP-Mesh-Lite Wi-Fi组网方案,所有终端设备都可以与相邻设备连接,摆脱了对路由…...

SiLM5350系列带米勒钳位的单通道隔离驱动器 助力汽车与工业应用实现稳定与高效的解决方案

带米勒钳位的隔离驱动SiLM5350系列 单通道 30V,10A 带米勒钳位的隔离驱动 具有驱动电流更大、传输延时更低、抗干扰能力更强、封装体积更小等优势, 为提高电源转换效率、安全性和可靠性提供理想之选。 SiLM5350系列产品描述: SiLM5350系列是单通道隔离驱…...

c#中怎么自动下载软件

以下是一个简单的 C# 示例,演示如何使用 WebClient 类下载软件: using System; using System.Net; class Program { static void Main(string[] args) { // 要下载的文件 URL string fileUrl "https://example.com/path/to/file"; // 本地保…...

Unity笔记之下拉刷新列表

这样的效果; 代码: using System; using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class ScrollRectUpdateView : Mon…...

防火墙操作!

当小编在Linux服务器上部署好程序以后,但是输入URL出现下述情况,原来是防火墙的原因!! 下面是一些防火墙操作! 为保证系统安全,服务器的防火墙不建议关闭!! 但是,我们可…...

代码随想录算法训练营第四十一天| 343. 整数拆分,96.不同的二叉搜索树

题目与题解 343. 整数拆分 题目链接:343. 整数拆分 代码随想录题解:343. 整数拆分 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili 解题思路: 一眼懵…...

【MATLAB源码-第53期】m代码基于粒子群算法(PSO)的三维路径规划,显示最优路径和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 粒子群算法(Particle Swarm Optimization,简称PSO)是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述: 基本思想: 鸟群在寻找食物时,每只鸟都…...

嵌入模型的维度幻觉:生产级RAG系统记忆的几何学边界

在构建企业级RAG系统或长期运行的AI Agent时,绝大多数架构师都默认一个前提:把文本切成向量,扔进384维、768维甚至1024维的嵌入空间,检索时靠余弦相似度,就能实现“接近人类”的长期记忆能力。随着数据库不断增长&…...

如何快速掌握华中科技大学本科毕业论文LaTeX模板:面向新手的完整使用指南

如何快速掌握华中科技大学本科毕业论文LaTeX模板:面向新手的完整使用指南 【免费下载链接】HUSTPaperTemp 华中科技大学本科毕业论文LaTeX模板 2017 项目地址: https://gitcode.com/gh_mirrors/hu/HUSTPaperTemp 华中科技大学本科毕业论文LaTeX模板是专门为华…...

为什么92%的AI微服务项目在6个月内陷入“模型-服务-数据”耦合危机?SITS2026披露3个关键设计断点及实时修复路径

第一章:SITS2026分享:AI原生微服务架构设计 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026现场,来自全球头部AI工程团队的实践者共同提出“AI原生微服务”范式——它并非传统微服务的简单容器化迁移,而是以模型生命周…...

Mermaid:基于文本驱动的图表生成架构,重塑技术文档的可视化协作范式

Mermaid:基于文本驱动的图表生成架构,重塑技术文档的可视化协作范式 【免费下载链接】mermaid Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown 项目地址: https://gitcode.com/GitHub_Trend…...

设置完成后如何将Android上的信息传输到iPhone?

许多用户在从Android手机切换到 iPhone时,会使用“转移到iOS ”功能来传输数据。然而,实际上,很多人在设置完成后才发现短信并未成功转移,或者他们当时可能跳过了这一步骤。因此,问题来了:设置完成后还能将…...

OpenClaw技能开发入门:为Qwen3-14B扩展Excel处理能力

OpenClaw技能开发入门:为Qwen3-14B扩展Excel处理能力 1. 为什么需要开发Excel处理技能 上个月我需要定期处理上百份市场调研数据,每天重复着打开Excel、筛选数据、生成统计图表的工作。当我第三次在凌晨两点对着满屏的数字犯困时,突然想到&…...

**雾计算中的边缘智能:基于Python的轻量级任务调度优化实战**在当前物联网与5G融合发展的背

雾计算中的边缘智能:基于Python的轻量级任务调度优化实战 在当前物联网与5G融合发展的背景下,雾计算(Fog Computing) 正成为连接云端与终端设备的关键桥梁。它通过将计算、存储和网络服务下沉至靠近数据源的边缘节点,显…...

ThinkPHP 8+CPU的生命周期的庖丁解牛

它的本质是:理解 PHP 代码(高级语言)如何被编译为 Opcode,进而被 Zend 引擎解释执行,最终转化为 CPU 能够理解的机器指令(Machine Code),并在 CPU 的流水线、缓存(L1/L2/…...

优酷网页截图黑屏问题解析:探索浏览器图形服务API的幕后机制

1. 优酷网页截图黑屏现象解析 最近有不少用户反馈,在优酷网页观看视频时尝试截图,结果保存的图片却是全黑的。这个问题看似简单,背后却涉及到浏览器图形渲染的复杂机制。作为一名长期研究浏览器底层技术的开发者,我发现这个问题其…...

APK安全加固公司怎么选?2026年技术实力与选型决策指南

作为移动端安全负责人,当你面对市场上众多APK安全加固服务商时,最头疼的往往不是找不到公司,而是如何从技术方案、成功案例、价格体系等多维度中,筛选出真正能防住破解、保障上架、并且符合合规要求的那一家。选错公司的代价不仅是…...