对于一个特定的项目,我必须实现一个临时文件服务器:
我正在考虑两个解决scheme:一个REDIS实例(没有虚拟机,没有持久性) – 一个带DAV模块的NGINX服务器(PUT命令上传)
但我真的对其他解决scheme开放;-)
如果您可以使用FreeBSD解决scheme而不是Linux,则FreeNAS是一个非常棒的NAS选件,易于安装和configuration,并且具有大量的连接和访问控制选项。 还有一个Linux版本的项目正在进行,但我不确定它是如何function完整的。
Linux方面也有OpenFiler ,但是我们发现FreeNAS更适合我们的各种需求(这听起来听起来有点不同于你们)。
编辑:听起来像你需要一些现有的Linux服务器上运行,而不是自己的硬件。 如果这是必要的,我会考虑在KVM或Xen下运行其中的一种虚拟机。
你可以试试你的运气与memcached或coauchdb 。 都是重要的价值商店,第一个是“内存”types。 可以使用它吗? 我不知道 – 这取决于消费者是否可以“猜出”产品所存储的数据。
也许memcached模块的Nginx正是你所需要的? 与它一起,您将获得RESTful HTTP接口到您的内存数据库。
你也可以考虑一些排队机制 – 从你在mysql中实现的简单fifo开始,到像rabbitmq或者activemq这样的东西。
只要在一个非标准的端口上运行NFS,使你的磁盘为tmpfs,我从这个声音中推断出来,总大小很小? 这应该接近线速(经典nfs要同步写入,但与tmpfs,这不会是一个问题。
tmpfs是一个基本上是你的交换文件/内存的块。 所以没有坚持通过重新启动任何forms,但写入内存的速度。
您的要求表明,除了“服务器”你需要提供:
1)一些客户端软件将文件放在服务器上
2)从服务器上下载的客户端软件
3)上传器和下载器之间的通知信道
4)一些智能服务器过期内容不再需要
虽然HTTP是一个明显的select(1和2被很好地覆盖,而3和4只需要在perl / php / whatever中很容易实现的几行代码),这听起来像是一个asynchronous消息队列系统。 你没有说交易完整性有多重要,但2&12表明这不是什么大问题。 所以我会build议使用电子邮件 – 通知是隐含的,它将存活临时中断,您可以轻松地configuration在非特权端口上运行的系统上的第二个SMTP服务器,大多数将允许您指定重试间隔,超时等。在接收端添加触发代码 – 这是使用procmail微不足道的。
HTH
C。