CDN与本土缓存

时间:2012-07-23 14:58:46

标签: caching memcached ehcache cdn akamai

我对CDN(如Akamai或Limelight)的理解是它们是重型缓存服务。

我也明白他们很贵。所以我想知道为什么我不能只为我所有的web应用程序的缓存需求(图像,URL命中/响应,Javascripts等)创建我自己的复制缓存服务器集群(使用,例如,使用EhCache或Memcached)并且基本上得到同样的事情?

从本质上讲,从开发人员的角度来看,支付CDN与仅使用自己的缓存解决方案相比,有哪些(技术或其他方面)的好处?或者,如果我完全误解了CDN是什么,请纠正我的理解!提前谢谢!

3 个答案:

答案 0 :(得分:11)

关键是CDN中的 N Content Delivery Network

CDN(至少是一个好的)的优势在于地理位置分散。大型CDN提供商(您与其他人一起提到的那些)在全世界的设施中拥有数百或数千台服务器。这使得CDN所服务的资源尽可能地位于最终用户的地理位置,无论他们身在何处。

您当然可以复制该功能。在一个非常基本的层面上,大多数CDN都只是一个对象/价值存储,大量的软件可以做 - 你无法做到的,无论如何,无论如何,这些人都可以在世界各地服务和复制服务器。这些对象。

如果您感兴趣的是一种存储和提供静态文件的有效方式,那么与nginx相结合的对象存储就可以了。 CDN用于尽可能快地加载网站,但它们需要付出代价。

据记载,亚马逊的Cloud Front虽然不像Limelight或Akamai那样分发,但价格便宜很多,并且在成本和服务方面都有很好的中间地带妥协。

答案 1 :(得分:3)

大型CDN的优势在于它们拥有遍布全球的分布式资源,允许它们从靠近它们的服务器为用户提供服务。除了缓存之外,这也是让它们变得快速的重点。

要构建自己的CDN,您必须在多个大洲安装服务器,为他们安排良好的Internet连接,设置缓存并确保所有服务器都已同步。这样做并非不可能,但这将是非常耗费成本的,并且可能无利可图。

答案 2 :(得分:3)

在充分尊重的情况下,我不同意迄今为止对这个问题给出的另外两个答案。为了清楚起见,我并不是说他们错了,我只是提出了不同的观点。

虽然正如Bulk雄辩地解释的那样,CDN性能的关键是“N”,但这并不意味着你不能建立自己的CDN。问题是它是否值得花时间(根据定义,是金钱)。

我们生活在廉价服务器甚至更便宜的虚拟机的世界里。当然,大型CDN网络在全世界拥有数千/数百万台服务器,但这是因为它们拥有数千/数百万个服务站点。根据您的网站/应用程序的大小,您在资源方面真正需要的就是您的网站所需的数量。如果你很小,最低可能是每个美国海岸的VPS,一个在欧洲,可能两个在亚洲,一个在澳大利亚。当然,硬件成本对于您的典型主页来说太高了,但它们肯定不是极端的,如果您首先查看CDN,它们可能在您的预算范围内。

对我来说,商业CDN服务只是提供了PaaS的便利,但没有什么能阻止你获得IaaS并构建自己的平台。


关于这个主题还有一件事:

我曾经读过David Heinemeier Hansson(Ruby on Rails的创建者)或有人提到他的评论,其中包括以下内容:37个信号的所有者关注DHH使用Ruby来建立他们的应用。那时Ruby仍然非常模糊。几乎所有的Web主机都提供PHP,Perl和Microsoft技术。当被问及世界上只有少数Ruby主机的事实时,DHH问道,“你需要多少个?”

对我而言,重点是您需要了解什么是最适合您的需求和应用程序的需求,而不一定是拥有数百万服务器的人所想到的。