关于大部分小中型网站APP的后台架构分析以及学习

来源:互联网 发布:手机淘宝app下载 编辑:程序博客网 时间:2024/04/27 18:09
大部分开发者对于刚开始做开发,甚至开发过一段时间的技术人员对什么网站架构,后台架构都有一种恐惧感,甚至是茫然感。对什么服务器集群,并发什么的一听到就要跳楼的感觉,最近看了 学习了很多APP网站的一些架构,这里与大家分享几点:
1,大部分招聘后台工程师都会写到:负责过大量并发,大流量项目经验,数据库设计读写分离,mysql优化,静态化等(其实没做过不用担心下面会给大家介绍,始终相信动了原理后再去实践只是实践问题)
2,服务器集群,MYSQL优化技术(数据库读写分离,分表分库),缓存技术(memcache,redis),静态化

下面我分步骤给大家讲一下如何走到服务器集群的web应用流程

一,通常我们使用的小型网站,小型APP都是单机模式,如下图:


很多公司网站,商户网站,小型APP都是采用这种简单地架构模式,只要硬件OK 应付一天几万,几十万甚至更高的PV应该是OK的, 我说的是PV不是并发,但是对于并发要求非常高的网站,比如每年四六级查询,高考查询,微博热点话题,一瞬间给你来个几百万几千万的流量,对于这种单机模式就有可能瞬间崩溃。

二,这个时候怎么办呢?如下图:

主要思路是通过加服务器的方式解决大流量问题,通过负载均衡器找到空闲的服务器将请求发到空闲服务器中执行,构成服务器集群抗压,如果你的网站多为静态页面其实这样横向扩展解决大流量完全没问题了,然而大部分网站都含有很多的数据存储等功能,此时压力显而易见已经到了MYSQL上去了。

三,SO如下图:

主要思路是通过数据库集群的方式解决数据库IO问题,往往大型网站都会对服务器,数据库做集群横向扩展操作
其实到这里网站后台的架构抗压读写都已经解决了。

四,再者就是加缓存集群,基本思路是先去缓存取,取不到在去数据库取,然后更新缓存。这里我就不再继续说了。

总结:其实以上架构都是非常常见成熟的架构方案,相信很多网站也是使用的类似架构,其实架构在初创团队,甚至中型网站都是可以很好解决的,其实最终考验所谓程序员能力的是程序员的代码能力,数据库设计能力等等,因为这些所谓的架构是需要你通过好的程序来调度实现的,举个例子:比如一个sql能搞定的事情,你却通过一个循环查sql,最终导致效率降低倍。  真正考验技术的时程序的架构设计以及使用这些缓存,数据库等服务的代码能力。所以骚年们,还是多码代码,多思考如何码好的代码,才是真正提升你技术能力的有效途径!最后希望各位吐槽!本人刚大学毕业,做过2款APP,一个P2P网站,微信开发等。  现在还在路上,也希望通过和大家交流不断提高自己。欢迎吐槽! 
0 0