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

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

目录

一、引言

二、DiskDataCenter类

1.实例化

2.封装交换机操作

3.封装队列操作

4.封装绑定操作

5.封装消息操作

三、总结


一、引言

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

二、DiskDataCenter类

1.实例化

    public DataBaseManager dataBaseManager = new DataBaseManager();
    public MessageFileManager messageFileManager = new MessageFileManager();

    public void init(){
        dataBaseManager.init();
        messageFileManager.init();
    }

2.封装交换机操作

/*
    封装交换机操作
     */
    public void insertExchange(Exchange exchange){
        dataBaseManager.insertExchange(exchange);
    }

    public void deleteExchange(String exchangeName){
        dataBaseManager.deleteExchange(exchangeName);
    }

    public List<Exchange> selectAllExchanges(){
        return dataBaseManager.selectAllExchanges();
    }

3.封装队列操作

/*
    封装队列操作
     */
    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.封装绑定操作

/*
    封装绑定操作
     */
    public void insertBinding(Binding binding){
        dataBaseManager.insertBinding(binding);
    }

    public void deleteBinding(Binding binding){
        dataBaseManager.deleteBinding(binding);
    }

    public List<Binding> selectAllBindings(){
        return dataBaseManager.selectAllBindings();
    }

5.封装消息操作

/*
    封装消息操作
     */
    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.kler.cn/a/445742.html

相关文章:

  • 题海拾贝:力扣 86.分隔链表
  • 【前端】Jquery拍照,通过PHP将base64编码数据转换成PNG格式,并保存图像到本地
  • 技术文档的规划布局:打造清晰且有条理的知识传递框架
  • Vulhub:Redis[漏洞复现]
  • OpenCV 学习记录:首篇
  • Java中的LIst
  • RabbitMQ实现网络分区
  • 深度学习推理速度优化指南
  • 《C++版本的“前世今生”与独特魅力》
  • 厦门凯酷全科技有限公司短视频带货可靠吗?
  • 手机便签哪个好用?手机桌面便签app下载推荐
  • SYD881X RTC定时器事件在调用timeAppClockSet后会出现比较大的延迟
  • 解锁看板工具的潜力:企业流程自动化的实践方法
  • Apache 如何监听多个端口 ?
  • 网站灰度发布?Tomcat的8005、8009、8080三个端口的作用什么是CDNLVS、Nginx和Haproxy的优缺点服务器无法开机时
  • 浏览器要求用户确认 Cookies Privacy(隐私相关内容)是基于隐私法规的要求,VUE 实现,html 代码
  • [Unity]Unity跨平台开发之Android打包和分发
  • Vue Web开发(十一)
  • 数据结构——队列的模拟实现
  • MySQL 8.0/8.4执行DDL会丢数据?是,但影响有限
  • React的img图片路径怎么写
  • dpdk中udp包的接受与发送
  • 什么是开关噪声抖动 (SNJ)?
  • 文章发稿平台哪个好用?哪个类型的媒体平台比较好过稿?
  • 2024年全球办公键盘行业总体规模、主要企业国内外市场占有率及排名
  • Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案