目录
(1)在新技术不断涌现的背景下,大型网站架构自创立以来经历了不断的重塑、优化、功能拓展,首先对大型网站架构的变迁历程进行管窥蠡测。
一、目的
作为一名在Java Web项目搭建方面有一定经验的码农,通过此篇文章整理一些技术点,希望对其他人而言有一定的借鉴价值,同时也巩固自己的所学,毕竟后端的技术点比较多,“笔记破万卷,代码如有神”也是很多技术大神不能否认的事实。
二、技术点介绍
后端技术庞杂,要抽丝剥茧捋出来一条好的思路把各个技术点串联起来是需要很深的功底的,说的太浅了没有营养,就像没有握住蛇的七寸,说得太深了则面对的群体就是有比较深厚技术功底的,资历尚浅的看了之后未免有点云里雾里的感觉,而我今天这篇文章,主要还是想站在一个有一丢丢知识积累的人来看待相关技术点。
首先明确的是作为一个Java Web项目,在基础科学没有发生巨变的背景下,目前的技术、架构是不会短时间发生太大变化的,但很多变化是身处洪流的我们应该有所察觉的,比如计算机内存成本的降低对于很多大型项目来说十分友好,从而应运而生了很多的新技术。互联网行业是攀爬更高技术阶梯的先锋,而代码工作者作为该行业内的一枚炮弹,不能只是从炮口出去还打偏了,只留下一个浅浅的弹坑,至少在变成炮灰之前,飞翔划过的空气、雨滴是值得的。
1.主要技术点
(1)在新技术不断涌现的背景下,大型网站架构自创立以来经历了不断的重塑、优化、功能拓展,首先对大型网站架构的变迁历程进行管窥蠡测。
- 初代的架构是将提供服务的程序、文件、数据库放在同一台服务器上面,即在本机的Apach Tomcat上部署应用,同时连接本机的MySQL或是Oracle数据库。缺点:较高的访问量会导致服务器负载过高,响应速度降低。
- 由应用服务器、文件服务器、数据库服务器构成,将不同的处理逻辑进行区分,一定程度上提高了并发量,能够为文件、数据提供更大的存储空间。缺点:在面对更大的访问量时,应用服务器和资源服务器的交互仍然是制约响应速度的瓶颈。
- 使用缓存技术,缓存技术可以部署在在用户端(网页缓存等)或是服务器端(服务器内的本地缓存、远程缓存),此处讨论后者,缓存的使用减少了应用服务器与资源服务器的交互,进而提高了响应速度。缺点:在面对更大的访问量时,单台服务器的负载仍然过高,响应速度会降低。
- 使用负载均衡技术,负载均衡服务器协调多个应用服务器,后者争夺访问资源服务器。缺点:在面对更大的访问量时,服务器争夺资源服务器,降低整体响应速度。
- 对数据库进行读写分离,主数据库服务器对外提供数据写入服务,从服务器提供数据读取操作,一主多从。缺点:在较高的访问量时,对应用服务器的负载仍很高,对资源服务器的连接仍然是瓶颈。
- 集群(物理范畴属于一个群体),增大资源投入以提高并发访问能力。缺点:仍然是访问量的增长对系统的挑战。附:微服务、分布式、集群三者关系
- 使用CDN(网络加速技术)和反向代理网络(代理技术)更加高效地将用户请求分发到不同的集群上。缺点:用户访问量增加仍在压榨整个系统的运行效率。附:知乎关于CDN和反向代理的讨论
- 分布式文件系统和分布式数据库系统(对文件、数据库依据业务进行拆分)进一步提高应用服务器对资源的获取速度。缺点:业务复杂性不断提高使得整个架构的复杂性、耦合度不断提高。
- 使用NoSQL技术(应用服务器和资源服务器之间)、进行业务拆分(不同业务板块划分到不同的应用服务器)形成分布式服务。缺点:整个服务体系变得前所未有的庞大,各个业务之间的关系错综复杂,保障整个体系的健康有序运行挑战巨大。
总结来看:上述网络架构变迁的驱动力是电子商务等新兴产业在不断利用技术解决业务需求,但是可以结合身边实例来看,较高层次的架构是如今很多小微产业转型用不到的,后几种架构在大型国企等资金雄厚企业信息化转型的路上仍然获利空间丰厚,在较高层次掌握架构的变迁可以一定程度预见、规划自己的职业生涯。