商业vs开源CMS和负载平衡

时间:2012-02-15 09:24:47

标签: open-source content-management-system load-balancing

我需要像Sitefinity这样的开源替代方案,其中负载平衡对于客户的网站至关重要。

在进行快速谷歌搜索后,看起来Joomla能够处理负载平衡,但我还想知道是否有其他人知道在负载均衡的情况下能够处理高流量的坚如磐石的开源CMS。

非常感谢!

4 个答案:

答案 0 :(得分:6)

对于扩展CMS网站,通常是与第三方工具兼容的情况。

我最近的经验是Drupal,但其他基于* AMP的工具(即PHP / Apache / MySQL)的工具是相同的,就像大多数开源CMS一样。

确定您的真正关键是每个CMS与这些标准工具的兼容性,以实现可扩展性。这几乎比CMS本身的特定可扩展性功能更重要,这在大多数现代CMS(激进缓存等)中几乎相同。

Linux的难题的典型部分如下。您应该评估哪些部分对您很重要,哪些部分适用于您选择的CMS。

  • Varnish:这个HTTP反向代理将位于您的主Web服务器前面,并尽可能高效地提供匿名页面请求。如果您的网站有大量匿名(未登录)流量,那么如果您的网站是静态HTML网页,那么Varnish将为您提供相同的性能。问题:您的CMS必须与Varnish合作,通过附加模块或直接了解如何在其中一个代理后面行事。匿名页面必须在没有任何唯一cookie的情况下提供,否则Varnish无法做到这一点。
  • Memcached:此内存中对象缓存用作SQL数据库中缓存表的替代方法。众所周知,内存访问速度是磁盘访问速度的1000倍,因此,如果将这些缓存位保留在内存中,而不必使用数据库并旋转磁盘来运行查询,那么您的站点将会非常快它也有理由说你需要足够的RAM来存储内存中的额外内容。
  • CMS中的缓存:所有现代CMS都尽力做到这一点,这是性能的关键。所有现代CMS的致命弱点在于,您无法真正缓存登录数据(即,为每个用户提供不同内容的仪表板)。因此,如果您的用户都已登录,例如社区网站或某些内容,那么上述两个项目或上述两个项目都不会对此有所帮助。
  • CDN:当CMS人们围绕“使用CDN”时,他们指的是一些事情。一个是它听起来像,托管像谷歌或亚马逊或其他人提供的内容传送网络上的静态文件,事情将加载更快。但另一件事意味着设置多个并行DNS名称来加载内容。您的浏览器将从单个域一次最多加载6个内容。如果您制作:a.example.com,b.example.com,c.example.com,d.example.com,e.example.com,然后如果您的CMS支持此CDN技术,那么浏览器可以下载30一次性而不是6次 - 它可以从a。,b。,c。,d。和e.example.com中获取6个项目(.css文件,.js文件,图像等)。这会加快网站速度,但CMS必须再次支持它(内置或通过某种模块添加)
  • 数据库复制?如果你在谈论在MySQL中这样做,这总是很棘手。无论数据库如何,复制都是一个难以解决的问题,特别是如果它必须是双向复制(每一方都必须读写)。如果你完美地完成了所有工作,并购买了最好的硬件,并将数据库粘贴在自己的高性能服务器上而没有其他服务,并且一个漂亮的快速raid-10阵列说有6个磁盘可以让你自己真的很棒磁盘性能........那么你可能会在一个主数据库上走很长的路。 (如果你把所有鸡蛋放在一个篮子里,那么复制到备用机器肯定是个明智的想法)。无论如何,到目前为止,您处于标准数据库复制领域......您的CMS可能支持拥有多个数据库条目,但这主要是“如何进行集群”而不是“您正在集群的CMS”的问题。如果任何现代替代方案不允许您为群集设置多个数据库主机名,我会感到惊讶,您可以通过循环访问DNS服务器的主机名来在DNS中执行此操作。但是,再次与您选择的CMS无关。

为了结束这一切,并回答你的问题,我当然推荐Drupal作为坚如磐石的可扩展CMS。是否容易扩展它,以便运行像examiner.com或whitehouse.gov这样的网站,或者拥有数百个(如果不是数千个)子网站和数百万个节点的大学网站?不,不!在您选择的任何CMS中,这一挑战也不容易......但如果您解决上述所有问题,您还应该能够选择任何现代流行的CMS并使其快速运行。

答案 1 :(得分:1)

答案 2 :(得分:0)

我们目前在具有相当高负载的群集设置中使用Alfresco。工作良好。我们注意到lucene索引同步的小问题 - 它可能需要一两分钟才能通过所有节点进行复制。

GA版本是开源的。他们还提供广泛的文档和培训。

答案 3 :(得分:0)

这是我的观点,有些人可能不同意,但大多数中型到企业内容管理系统(包括开源和商业)都提供负载平衡功能。问题是他们的解决方案的效率和可扩展性如何。例如,Sitefinity提供负载平衡,其中Web场中的每个服务器都必须知道其他服务器。例如,如果我在Web场中有20台服务器,那么我必须配置每台服务器并确保它知道其他服务器。这是一个真正的痛苦,但它仍然是一个“负载平衡”功能。我想说的是,在决定使用该CMS之前,请确保调查负载平衡在某个CMS中的工作方式。