前言作为一个追求前端的人,在学够的同时,不要只局限在前端的世界里。后端知识是与前端工作关系最密切的部分内容,多了解后端知识也有帮助。本文简要介绍构建大型架构必备的三个知识。也是我做前端这么久一直想知道的,如何突破现有的性能瓶颈,实现高并发、高性能、高可靠。文中如有错误,敬请指正。优化数据库负载均衡缓存技术优化数据库对于一个使用数据库的Web站点来说,数据库的性能关系到整个Web应用的性能。如果数据库的性能不好,其他的优化工作就白费了。因此,优化数据库性能对提高整个Web应用的效率起着决定性的作用。1、表的设计必须规范,即必须符合数据库设计范式。2.适当建立索引,在经常作为检索条件的、更新较少的字段上建立索引,以提高查询速度。3、分表查询,有水平拆分和垂直拆分。4.读写分离,读(read)、写(create、update、delete)。5.创建存储过程。这里特别想提的是分表的重点。最简单的就是按照用户ID的最后一位拆分成10张表,即0、1、2、3、4、5、6、7、9。这种并行拆分的方式,一方面可以一方面解决了单个数据库并发连接数的限制,另一方面可以控制单个表的大小。一种非常有效的优化方法,特别是解决高并发需求。负载均衡单个Web服务器的处理能力是有限的。当单个服务器的压力达到极限时,需要更多的服务器来分担工作。我们需要想办法把流量合理的分配到更多的服务器上。任何负载均衡技术都必须想方设法建立某种一对多的映射机制:将一个请求的入口映射到处理该请求的多个节点,从而实现分而治之(DivideandConquer)。这种映射机制使得多个物理存在对外表现为一个虚拟的整体,对服务请求者屏蔽了内部结构。使用不同的机制建立映射关系可以形成不同的负载均衡技术,常见的有:CDNHTTP重定向基于DNS轮询解析反向代理服务器详见亿级Web系统构建-单机到分布式集群缓存的发展网络中,数据越来越多,导致计算压力越来越大。为了解决这个问题,需要对计算资源进行合理分类,充分利用现有资源。缓存的工作其实就是合理分配计算资源。高速缓存(Cache)的本义是指可以进行高速数据交换的内存。CPU处理数据时,首先在Cache中查找。如果因为之前的操作已经读取,数据暂时存放在里面,就没有必要再从随机存取存储器中读取数据了。现在缓存的概念已经扩展了。凡是位于速度相差较大的两种介质之间,用来协调两者之间数据传输速度差异的结构,都可以称为Cache。在网络世界中,理论上每一层都可以缓存。以PHP应用为例:底层有CPU缓存、磁盘文件系统缓存,数据库层有TableCache、QueryCache、Apache和Ngix缓存。Smarty在应用代码层面实现的文件缓存基于HTTP协议,浏览器自身实现的浏览器缓存基于NoSQL系统缓存(redis、memcached)结语以上三种技术手段是构建大型-规模化网络应用,每一个扩展点都非常深。作为前端,很多技术在工程项目中不一定能实践,只能从书本、讲座、博文中学习。最后推荐一本PHP的书《PHP核心技术与最佳实践》,正如作者在书序中所说的,不讲HTML、CSS、JS的基础,也不讲PHP语法的基础,而是着眼于web最前沿开发技术,深入浅出,探讨高并发大流量架构。一本很棒的进阶书籍。WilsonLiu的博客起始地址:http://blog.wilsonliu.cn
