0

请就我的问题给我一些提示。

我正在构建一个队列数据结构:

  1. 在硬盘上实时备份
  2. 并且可以恢复备份
  3. 可以响应大量的入队/出队请求

谢谢!

4

3 回答 3

4

这是你在做的练习吗?如果没有,您可能应该查看一些生产消息队列技术(例如 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

还有这个...

于 2009-04-28T16:21:07.830 回答
4

如果可以避免,请不要自己动手。对于 Java,请尝试ActiveMQ

于 2009-04-28T16:28:29.933 回答
1

您可能正在寻找比简单库更复杂的东西。

由于这是一个练习(可能希望您考虑底层数据结构),您可以通过排队到 mySQL 数据库开始简单的方法。与专用排队软件相比,您的性能会很差,但您至少可以让其余的基础设施正常工作。

之后,您可能会看到某种形式的自定义文件格式和基于它的多线程服务器。您也许可以使用 BDB 或 SQLite 之类的东西来实现 I/O 层,从而省去编写实际磁盘例程的麻烦。

于 2009-04-28T18:24:55.537 回答