我正在尝试构建一个Web图像服务器。它同时为许多客户(10万+)提供图像。 (如果客户端较少,这将是一个更容易的问题。)这样做的好方法是,尽可能减少时间延迟。
我是这个领域的新手。任何建议都会受到欢迎。
绝对寻找一个良好的送货服务。 Akamai是最知名的。
如果你真的想自己做,那就别忘了Apache / IIS。更轻松的'轻型'网络服务器。两个非常好的是lighthttp和NginX(wiki)。特别是NginX,具有非常可靠的性能。
编辑:内容分发网络(CDN)在过去几年中蓬勃发展,并且更容易找到更容易和更便宜的。特别是,将静态内容放在亚马逊的S3中并使用CloudFront非常简单。
如果您想设计具有最低延迟的最快的静态文件网络服务器,我就是这样做的。
这基本上是IO完成端口减去文件的缓存。此模型在Windows和Solaris中可用。
http://technet.microsoft.com/en-us/sysinternals/bb963891.aspx
(来源:microsoft.com)
有了这么多客户,您可能需要考虑使用内容交付网络(例如Akamai)。表面上看起来似乎很昂贵,但如果你真的看到维护硬件的成本,特别是带宽成本,它开始具有经济意义。
如何提供图像?图像是否即时生成?或者它们是静态的并以.jpg或其他格式存储在文件系统中?
无论哪种方式,我都使用ASP.NET .ashx(泛型处理程序)并使用System.Drawing类。
您还需要为每个http://support.microsoft.com/kb/323431设置TCP / IP网络负载平衡