我目前正在为瑞士的社交项目创建一个网站。
在用户溢出之前,我想准备应用程序进行扩展。
我自己回答了许多问题,但有些问题仍未解决。
我解释我想做什么。
第一
在开始时,应用程序将只有一个服务器(短时间)与DNS,PHP,Mysql,数据和内存缓存。
第二
然后我将它们分成两部分
第三
这是问题所在,我不知道如何正确地执行此操作以保持应用程序正常运行。
我能做到:
这将是方案,所有PHP会话都保存在数据库中。
但是,如何同步数据呢? 运行Rsync以使其保持最新状态。 将它们放在单独的磁盘(网络磁盘)上以确定吗? 但在这种情况下,如果用户上传,我该怎么办?
如果网站获得更多成功并且我们必须继续使用更多结构,那么它会不会在更新上产生一些延迟?
或者直接访问亚马逊的网络服务会是一件好事吗?
一些信息 我使用codeigniter作为框架。 我使用linux作为webserver(现在没有选择发布,但应该是Debian)
提前感谢您的回答。
答案 0 :(得分:15)
根据Wikipedia,瑞士有460万德语人士,150万法语人士和0.5百万意大利语,罗曼什语和其他语言。所以我怀疑你会发现一台服务器符合你的需求。猜猜每个月或每天访问您网站的人口百分比,以了解在遇到扩展问题之前您可以获得多大的数据。
所以,我认为你不需要担心缩放!奖励:您不必担心此问题的时间,您可以用来为您的用户解决其他问题。
答案 1 :(得分:8)
根据Flickr和Facebook等网站的使用顺序,有一些扩展网络服务的常用途径:
但是,在缩放之前,请测量。一组测试,计算您的容量,并且在您需要之前不进行优化。
答案 2 :(得分:2)
我看到一些有问题的事情:
您有一台SQL服务器,并且您正在将数据库存储在您预计会有极高容量的网站上。如果有人登录,那么生成单个页面需要多少查询?当您最终使用MySQL复制时,预期的速度会减慢多少?
如果使用群集FS,一切都“保持”同步。当Web服务器2上的构建B中断时,您将不会在Web服务器1上结束构建A.如果你真的希望有那么多的流量,在上传更改所需的时间内,然后同步所有节点,你就会生气一千人。
我已经使用OCFS2部署了在集群上运行的应用程序,其中有40多个节点没有问题,而OCFS2并不是可用的“最佳”集群FS。查看Lustre并考虑将会话保留在磁盘上。
答案 3 :(得分:0)
请记住,您可以挂载/共享文件夹。
您要同步哪些数据?
您可以考虑将数据放在数据库计算机或其他计算机上。 db机通常是一个好主意,因为它可能比常规Web服务器具有更大的IO。
设置SAN或类似设备可能是个好主意,因此您的数据会保留在一个位置。多个数据副本是一个难以处理的问题。走这条路线意味着你也可以把db文件放在那里。