本来不打算把所有的架构方案和基础技术写出,毕竟是吃饭的家伙事,拿这套东西去面试完全可以对付只做过中小网站的经验的开发面试人员,但是我也是从别人的博客和文章学习和实践出来的
如果你没有基础的linux一些软件的知识,你只是开发的话,可以作为技术提升方向参考下
请去qq群下载最新版和拓扑图源文件,新版和第一版差别很大,最下面,呵呵呵呵!
外网人口 ---》
物理防火墙带路由功能的支持各种分流方式 ,越是强大的贵的路由支持的量就越大,比如华为,深信服,绿盟,还有看你需求希望是三层还是七层的
的人华为的最好,但是也是最贵,看公司实力(自己的机房)
如果是云服务或者是托管主机,看机房,需要知道具体的可承受的最大连接数
---》 图片服务器可以使用nginx或者vanish,vanish存于内存,对于热图片数据比较好,一般的文件图片nginx足以,视频服务器nginx也可以,文件服务器也是,全部使用NFS虚拟路径挂载,也可以使用API文件接口服务器,但是对代码要求会有些高,而且在api服务化所有操作的时候,难度会比较大一点,但是可以独立所有文件服务器,开始阶段使用挂载是最方便的,问题也是最少的
---》 关于数据库访问,有2中方式,一个代码主从,完全解决mysql主从时间差问题,对底层代码要求和对写代码的人员要求分清所有操作的是需要分清主从,中间件使用,但是无法完全解决主从时间差问题,上mysql5.6以上的版本的多线程复制,可以大幅度减少时间差问题,但是大数据量之后依然会出现这个问题,不是一个单独中间件可以完全解决的,目前建议代码主从,中间件解决办法,其他文章介绍
---》
读,先读缓存,没有查找数据库,写入缓存,读取缓存,减少数据库读取压力80%-90%,
写,如果你要使用延迟写入,解决垃圾数据问题,但是稍微有些麻烦,需要定时去读取缓存插入数据,需要定时任务,无法完全保证数据完整性和正确性,建议直接写入数据库,也可以多主多从架构,分压写入压力
所有机器水平直接扩展,后期的API话服务器也可以基于这种架构,但是访问的就不是某个独立的ip是吧每一层切成一截一截的水平放置,内部使用,根据访问者的优先级来划分使用资源份额和权限