我目前正在为瑞士的社交项目创建一个网站.
在用户溢出之前,我想准备应用程序以进行扩展.
我自己回答了许多问题,但有些问题仍未解决.
我解释一下我想做什么.
第一
在开始时,应用程序将只有一个服务器(短时间)与DNS,PHP,Mysql,数据和内存缓存.
第二
然后我将它们分成两部分
DNS,Mysql,memcache
数据,PHP
第三
这是问题所在,我不知道如何在这里完成它以保持应用程序运行良好.
我可以 :
前端:负载均衡器,内存缓存,DNS
Web 1:PHP,DATA
Web 2:PHP,DATA
Mysql的
这将是方案,所有PHP会话都保存在DB中.
但是,我如何同步数据?运行Rsync以使其保持最新状态.将它们放在单独的磁盘(网络磁盘)上以确定吗?但在这种情况下,如果用户上传,我该怎么办?
如果网站获得更多成功并且我们必须继续进行更多结构,那么它会不会在更新上产生一些延迟?
或者直接访问亚马逊的网络服务会是一件好事吗?
一些信息 我使用codeigniter作为框架.我使用linux作为webserver(现在没有选择发布,但应该是Debian)
提前感谢您的回答.
据维基百科称,瑞士有460万德语人士,150万法语人士,以及0.5百万讲意大利语,罗曼什语和其他语言的人.所以我怀疑你会发现一台服务器符合你的需求.猜猜每个月或每天访问您网站的人口百分比,以了解在遇到扩展问题之前您可以获得多大的收益.
所以,我认为你不需要担心缩放!额外奖励:您不必担心此问题的时间,您可以用来为您的用户解决其他问题.
根据Flickr和Facebook等网站似乎使用的顺序,有一些扩展Web服务的常用途径:
根据概念拆分服务器(API,登录,媒体文件,广告,静态页面,动态页面)
根据不需要加入的概念拆分数据库(登录,长期报告,页面数据等)
编译/优化您的PHP和其他资源(sprite,编译的css,zend)
添加缓存(前端,后端)
添加授权(循环等)
但是,在缩放之前,测量一下.一组测试,计算您的容量,并在您需要之前不进行优化.