我有兴趣devise一个简单的基于局域网的服务器,它可以随时从局域网内接受和服务有限数量的连接(<25)。 服务器dynamic生成图像,并以〜40-50 MB / s的速度将其传输到客户端。 对这样一个服务器的可用devise实例的任何build议/意见 – multithreading,多任务,其他devise范例要牢记在心? 而且,如果这台服务器在互联网上的任何地方都可以接受连接(> 10000)呢? 任何参数会改变吗? 有没有可用的例子?
这主要是一个编程types的问题。 我不寻找图像压缩或任何其他特定的algorithm或运输。 只是对整体devise更高层次的看法。 应该有multithreading,什么types的排队? 哪种语言最适合,为什么? 任何文学/书籍/文章等可用? (除了angular落)
欣赏任何指针
另一个高层次的架构问题。 哇在一天之内。 我觉得自己很特别。
对。 无论你做什么,都要快速轻量。
我可能会有一个事件驱动的服务器。 Node.js似乎可能会成为这个很好的候选人。
不要太担心同时连接的数量,或者就此而言,数据传输速率。
使用正确的语言是你最好的,但有一个体面的HTTP库也会很好。
是。 可能应该有multithreading,当然如果devise需要的话。 请参阅..您需要先devise软件,然后再考虑下面的系统。
也许从一张大纸条和一支铅笔开始,写下你想做的一切,直到你a)用完东西,或者b)用完铅笔。
然后去研究如何做所有这些事情。
然后雇用知道自己在做什么的人。 这听起来像是你想要把所有的东西一下子全部都做完。
所以你有一个服务器产生的东西,你正在寻找一个服务器接受并使其在互联网上可用? 通过http?
基于networking的文件系统很容易接收文件。 根据生成机器的操作系统,在服务器上安装NFS或samba。 将文件系统安装到生成器上。 在生成器上,运行程序并让它们在挂载中写入映像,这些文件在服务器上自动可用(作为本地文件)。
通过http服务本地静态文件是相当容易的,在linux / bsd上我推荐使用nginx。 您所提到的并发性会迅速将您带入“大带宽”,具体取决于您将进入CDN领域的数量。
注意:在这个devise中,你没有提及关于图像的元数据(生成什么图像,什么时候,它的内容是什么等)以及如何触发这一代。
任何参数会改变吗?
是。 它不会是一个服务器。 任何线索你需要多less处理能力来并行生成10.000个图像? 考虑到你的带宽(25倍带宽)(客户端带宽为400),其带宽为16GB / s到20GB / s。
你可能在这里谈论400-500台服务器。
“Gearman是一个系统,可以将工作分配给其他机器,调用更适合工作的机器的函数调用,并行工作,负载平衡大量函数调用,或调用语言之间的函数。