CakePHP高可用性服务器场设置

我目前正在configuration我的基于CakePHP(1.3)的Web应用程序在HA安装程序中运行。 我有4个networking运行应用程序本身的数据库后端MySQL集群。 我有用户每周上传12,000 – 24,000张图片(35-70 GB)。 该应用程序然后从原始,缩略图和中等大小的图像生成2个额外的文件预览。 这意味着每周总共有36,000到72,000个可能的文件被添加到存储库中。

我试图包裹我的头是如何处理来自用户尝试查看这些图像的大量的静态文件请求。 我的意思是我可以有多个网页框只提供静态文件与调度请求的负载平衡器。

但是,有没有人在这里有任何想法如何保持所有静态文件服务器同步?

如果您有任何经验想要分享,或者对我有用的链接,将非常感激。

谢谢,

serialk

这是一个相当棘手的问题。

从技术上讲,通过使用DRBD和Linux-HA进行主动/被动设置,您可以通过NFS(或SMB,如果您喜欢)获得高可用性共享目录。 这样的设置对于单个服务器丢失具有良好的可用性,但是,这样的设置非常浪费,并且不容易扩展 – 您必须让应用程序本身决定要使用哪个服务器,配置NFS挂载等,这一切都变得相当复杂。

所以我可能会提示避免将图像保存在文件系统中,或者至少不是传统的文件系统。 我假设你需要灵活地增加未来的存储空间 – 如果你能保持存储和IO的要求不变,DRBD,HA NFS可能是一个好的系统。

用于将文件存储在灵活的“云”中

塔霍LAFS

或者,也许是Cassandra,这需要更多的整合,但在某些方面可能会更好。

MySQL集群对于大数据块并不好,因为它(大部分)将数据保存在内存中; 而且它所提供的高一致性需要大量的锁定,这使得在高工作负载下更新(相对)严重。

但是你仍然可以考虑把图像放在mysql-cluster中,特别是你已经设置了它 – 这不需要更多的操作开销。