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);
}
三、总结
本篇文章涉及的内容十分简单,就是将我们前两篇文章所写的一些方法进行封装,实现统一硬盘的操作,下一篇文章我们将学习内存数据管理的相关操作,感谢观看!