当前位置: 首页 > 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)是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述: 基本思想: 鸟群在寻找食物时,每只鸟都…...

别再手动画电路图了!用Python的Schemdraw库5分钟搞定专业级原理图

用Python的Schemdraw库5分钟生成专业电路图:工程师的效率革命 在电子工程领域,绘制电路原理图一直是项耗时费力的工作。传统工具如Visio、Altium Designer虽然功能强大,但每次修改都需要手动调整元件位置、重新连线,一个复杂电路图…...

终极Nintendo Switch游戏安装指南:Awoo Installer如何让游戏安装变得简单快速

终极Nintendo Switch游戏安装指南:Awoo Installer如何让游戏安装变得简单快速 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Sw…...

从一道CTF题出发,手把手教你用Gopher协议玩转SSRF+SQL注入(附Python脚本)

从零构建Gopher协议攻击链:SSRF与SQL注入的深度实战指南 当你第一次在CTF比赛中遇到SSRF漏洞时,是否曾被Gopher协议的神秘面纱所困扰?作为内网渗透中最强大的协议之一,Gopher能够将SSRF的杀伤力提升到全新高度。本文将带你从协议原…...

Go语言构建高性能Discord机器人:并发架构与实战指南

1. 项目概述:一个用Go语言打造的Discord机器人框架如果你在Discord社区里泡过一段时间,或者自己运营过服务器,大概率会想过:“要是能有个机器人帮我自动处理这些重复性工作就好了。” 从欢迎新成员、管理频道、组织活动&#xff0…...

SAP ABAP实战:用BAPI_PR_CHANGE批量更新采购申请,别再一条条改了

SAP ABAP高效开发:BAPI_PR_CHANGE批量处理采购申请的工程化实践 采购申请(Purchase Requisition)作为企业采购流程的起点,其数据维护效率直接影响采购部门的运作效能。当面对数百甚至上千条需要同步更新文本、状态或关键字段的采购…...

创业公司AI能力建设白皮书(AISMM轻量级实施框架首次公开)

更多请点击: https://intelliparadigm.com 第一章:AISMM模型在创业公司中的应用全景图 AISMM(Agile Intelligence Strategy Maturity Model)是一种融合敏捷开发、数据智能与战略演进的三维成熟度框架,专为资源受限但决…...

Flowable工作流核心表结构全解析:从ACT_RE到ACT_HI,看完这篇就懂了

Flowable工作流引擎核心表结构深度解析:从数据视角掌握流程运转机制 1. 工作流引擎的数据架构设计哲学 现代BPM系统的核心在于如何高效管理流程状态与历史轨迹,Flowable通过精心设计的表结构实现了这一目标。与大多数开发者仅关注API调用不同&#xff0c…...

Flutter与Firebase构建教育管理系统:架构、权限与实时数据实战

1. 项目概述:一个用Flutter与Firebase构建的移动端教育管理系统 如果你正在寻找一个开箱即用、架构清晰、且能快速上手的移动端应用项目来学习现代Flutter开发,那么 macondo_vivo_flutter 这个项目绝对值得你花时间深入研究。这是一个面向教育机构的管…...

OpenCode Telegram Bot:打造本地化AI编码伴侣,实现远程异步开发

1. 项目概述:一个本地化的AI编码伴侣 如果你和我一样,经常在命令行里用 opencode 这个AI编码工具,那你肯定遇到过这样的场景:正坐在沙发上用手机刷着消息,突然灵光一现,想到一个代码优化点或者一个需要调…...

Windows翻页时钟屏保终极指南:打造你的专属数字时间艺术

Windows翻页时钟屏保终极指南:打造你的专属数字时间艺术 【免费下载链接】FlipIt Flip Clock screensaver 项目地址: https://gitcode.com/gh_mirrors/fl/FlipIt FlipIt是一款基于.NET Framework构建的开源翻页时钟屏保工具,它将复古机械时钟的视…...