点对点 LAN 存储

点对点 LAN 存储

我有一个分布式应用程序,其中包含一个主 CMS 服务器,其中“人类”用户可以上传视频、图片(基本上是媒体内容)以及一群在特定时间播放这些视频或图片的“播放器”。

现在,每个播放器都通过 HTTP/SFTP 连接到 CMS 以获取其需要播放的内容(呃……并播放它……如果没有任何损坏)。如果播放器已经下载了需要播放的视频,则不会再次连接到 CMS。我的意思是...不是 CMS 正在流式传输视频或类似的东西...玩家说“哦,我需要播放视频 Jenna_Jameson_meets_the_plumber.avi(说某事)5分钟后。我已经有了吗?如果是,则在该播放时就播放。否则,连接到 CMS,下载并在该播放时播放。播放器的作用更像是要显示的媒体的“缓存”。

现在,有可能大量玩家都在同一个专用 LAN 中,通过快速以太网连接相互连接(比他们与 CMS 可能拥有的便宜的 DSL 连接快得多),所以我正在考虑实现一些东西,以便玩家在进入 CMS 之前向邻居请求内容(玩家和 CMS 都是用 Python 编码并使用 Ubuntu 作为操作系统),但后来我想也许有类似的东西(我认为我可以做它使用预先存在的工具,我比我自己可以实现的任何工具都更信任这些工具)。你们中有人知道可以按照我想要的方式工作吗?问题之一是我什至不太确定如何调用这种应用程序。

我已经研究过 NFS 文件系统,但是(如果我理解正确的话)我需要为每个“其他”播放器安装一个 NFS 目录,并且每次我需要我想要播放的教育纪录片之一时,我都会需要遍历所有这些 NFS 目录,检查视频是否在其中任何一个中,如果没有,则从 CMS 中获取它......这听起来有点慢,对吧?另外,我不知道如何很好地处理局域网中的计算机可能不是我的玩家。我不知道如何使用分布式文件系统来处理“我的”玩家的发现。

如果有人能指出我正确的方向,我将不胜感激。先感谢您。

答案1

嗯,我想这应该是一个答案。

这听起来像是一份工作比特流

答案2

也许你可以在你的局域网中使用代理?

我的意思是,设置一些本地代理来缓存图像和视频等媒体内容。

然后,当某些“玩家”第一次想要“玩”时,您的代理将缓存该文件,当下一个玩家想要玩时,它将必须使用已使用的文件进行解决。

您甚至可以将播放器设置为仅通过代理获取媒体文件,并将其余内容直接发送到您的 CMS。

我想到这个想法是因为几天前我正在设置 varnish(服务器端)来缓存图像和其他内容,但是如果您了解一点历史,您就会记得 ISP 在当天都在代理内容。

相关内容