请就我的问题给我一些提示。
我正在构建一个队列数据结构:
- 在硬盘上实时备份
- 并且可以恢复备份
- 可以响应大量的入队/出队请求
谢谢!
请就我的问题给我一些提示。
我正在构建一个队列数据结构:
谢谢!
这是你在做的练习吗?如果没有,您可能应该查看一些生产消息队列技术(例如 Windows 的 MSMQ),它支持将队列持久保存在磁盘上,而不仅仅是将它们存储在内存中。
根据您的要求
1. has a backup on hard disk at realtime
是的,MSMQ 可以做到这一点。
2. and can restore the backup
然后。
3. Can respond to massive enqueue/dequeue request
还有这个...
如果可以避免,请不要自己动手。对于 Java,请尝试ActiveMQ。
您可能正在寻找比简单库更复杂的东西。
由于这是一个练习(可能希望您考虑底层数据结构),您可以通过排队到 mySQL 数据库开始简单的方法。与专用排队软件相比,您的性能会很差,但您至少可以让其余的基础设施正常工作。
之后,您可能会看到某种形式的自定义文件格式和基于它的多线程服务器。您也许可以使用 BDB 或 SQLite 之类的东西来实现 I/O 层,从而省去编写实际磁盘例程的麻烦。