Java项目--仿RabbitMQ的消息队列--统一硬盘操作

news/2024/12/21 23:50:08/

目录

一、引言

二、DiskDataCenter类

1.实例化

2.封装交换机操作

3.封装队列操作

4.封装绑定操作

5.封装消息操作

三、总结


一、引言

  上一篇文章介绍了如何将消息文件存入硬盘的操作,这一篇文章就简单介绍一下统一硬盘操作。

二、DiskDataCenter类

1.实例化

java">    public DataBaseManager dataBaseManager = new DataBaseManager();public MessageFileManager messageFileManager = new MessageFileManager();public void init(){dataBaseManager.init();messageFileManager.init();}

2.封装交换机操作

java">/*封装交换机操作*/public void insertExchange(Exchange exchange){dataBaseManager.insertExchange(exchange);}public void deleteExchange(String exchangeName){dataBaseManager.deleteExchange(exchangeName);}public List<Exchange> selectAllExchanges(){return dataBaseManager.selectAllExchanges();}

3.封装队列操作

java">/*封装队列操作*/public void insertQueue(MsgQueue queue) throws IOException {dataBaseManager.insertQueue(queue);messageFileManager.createQueueFile(queue.getName());}public void deleteQueue(String queueName) throws IOException {dataBaseManager.deleteQueue(queueName);messageFileManager.destroyQueueFile(queueName);}public List<MsgQueue> selectAllQueues(){return dataBaseManager.selectAllQueues();}

4.封装绑定操作

java">/*封装绑定操作*/public void insertBinding(Binding binding){dataBaseManager.insertBinding(binding);}public void deleteBinding(Binding binding){dataBaseManager.deleteBinding(binding);}public List<Binding> selectAllBindings(){return dataBaseManager.selectAllBindings();}

5.封装消息操作

java">/*封装消息操作*/public void sendMessage(MsgQueue queue, Message message) throws IOException, MqException {messageFileManager.sendMessage(queue,message);}public void deleteMessage(MsgQueue queue,Message message) throws IOException, ClassNotFoundException, MqException {messageFileManager.deleteMessage(queue,message);if(messageFileManager.checkGC(queue.getName())){messageFileManager.gc(queue);}}public LinkedList<Message> loadAllMessageFromQueue(String queueName) throws IOException, MqException, ClassNotFoundException {return messageFileManager.loadAllMessageFromQueue(queueName);}

三、总结

  本篇文章涉及的内容十分简单,就是将我们前两篇文章所写的一些方法进行封装,实现统一硬盘的操作,下一篇文章我们将学习内存数据管理的相关操作,感谢观看!


http://www.ppmy.cn/news/1557050.html

相关文章

数据分析实战—玻璃类别分类

1.实战内容 (1) 加载玻璃类别数据集&#xff0c;划分训练集、测试集 import pandas as pd import numpy as np pd.set_option(display.max_columns, None) pd.set_option(display.max_rows, None) # 读取数据集 glass pd.read_csv(glass.csv, encodinggbk, headerNone) glas…

Vscode打开后闪退问题

vscode 动不动就无法启动呀&#xff1f; 表现为启动在任务管理器中一闪而过 我这边过一个周末就不行了&#xff0c;昨天重新安装&#xff0c;今天又启动不了了 解决方案&#xff1a; 在cmd中启动code.exe 报错提示&#xff1a; FATAL:v8_initializer.cc(630)] Error loadi…

【Super Tilemap Editor使用详解】(七):图块集纹理编辑器(Tileset Atlas Editor)

1、创建图块集后&#xff0c;我们可以打开 Atlas Editor Window&#xff08;纹理编辑器窗口&#xff09;以修改图块集的纹理和配置。 2、打开的方法 &#xff0c;从菜单中选择 "SuperTilemapEditor/Window/Atlas Editor Window" 打开 3、图块集切片设置&#xff08;S…

Pytorch | 从零构建AlexNet对CIFAR10进行分类

Pytorch | 从零构建AlexNet对CIFAR10进行分类 CIFAR10数据集AlexNet网络结构技术创新点性能表现影响和意义 AlexNet结构代码详解结构代码代码详解特征提取层 self.features分类部分self.classifier前向传播forward 训练过程和测试结果代码汇总alexnet.pytrain.pytest.py CIFAR1…

【网络安全】掌握 Active Directory 攻防审计实操知识点

掌握 Active Directory 攻防审计实操知识点 在深入了解 Active Directory 之前&#xff0c;我们需要先掌握网络基础设施的映射和资源访问管理方式。这一切通常通过目录服务 (Directory Services) 实现&#xff0c;目录服务在组织内提供网络资源的映射和访问。轻量目录访问协议…

python中的字典数据和标准json格式区别

Python中的字典&#xff08;dict&#xff09;数据和标准JSON&#xff08;JavaScript Object Notation&#xff09;格式在许多方面类似&#xff0c;因为JSON的对象结构本质上是键值对的集合。然而&#xff0c;它们之间仍存在一些重要的区别。以下是详细的对比&#xff1a; 1.数…

基于Java+SpringBoot+Vue摄影约拍管理系统(源码)

感谢您阅读本文&#xff0c;欢迎“一键三连”。作者定会不负众望&#xff0c;按时按量创作出更优质的内容。 ❤️ 1. 毕业设计专栏&#xff0c;毕业季咱们不慌&#xff0c;上千款毕业设计等你来选。 项目介绍&#xff1a; 摄影约拍管理系统是一款基于Java、Spring Boot、Vue技…

上海期货信息技术部分笔试题 - 解析

一、单选题 1.下列哪一种叙述是正确的(D) A.抽象方法的方法体部分必须用一对大括号{}包住 B.abstract修饰符可修饰字段、方法和类 C.声明抽象方法&#xff0c;大括号可有可无 D.声明抽象方法不可写出大括号 解析&#xff1a; 抽象方法没有方法体&#xff0c;因此不能有大…