大型网站架构有独特的模式,支撑着大型网站的运行。模式像一种规则一样,是网站所必须的要素。
现阶段,各大公司对高可用,高并发,易伸缩等性能提供了很多方案。大型架构一书中提到了几种方案。我会做一一分析理解。
一、分层结构
作为网站而言,分层是必须的,在我们刚接触到网站开发时,就会有MVC三层模式开发。层次清晰,易于维护。对于大型网站而言,分层是必须的。一般分为Web前台层和APP服务调用层。Web前台可以是各种终端,搭建负载集群,CDN加速等。APP服务层则属于数据处理,业务逻辑分析。前台数据进入APP层进行业务逻辑处理。总之,当业务达到一定极限时,前台Web层与后台APP服务层就得分开部署。
二、分割结构
对于业务复杂的系统,开发维护成为一大难题。因此就得对业务进行区分,分模块化,像移动的业务就可分为手机业务,宽带业务等,每一部分由专门团队开发维护,不同模块部署在不同服务器上。这样,一个大型系统就能井井有序的开发维护。
三、分布式结构
对于这一名词,很多人都不陌生,分布式,到底什么是分布式呢,分布式是使用更多的服务器完成同样的功能,服务器越多,CPU、内存、存储资源就越多。能够处理的并发量和数据量就越大。
常用分布式方案以下几种:
1、分布式应用和服务
2、分布式静态资源
3、分布式数据和存储
4、分布式计算
5、分布式锁
6、分布式配置
7、分布式锁
四、集群
什么是集群呢,集群和分布式的区别是什么? 我查阅资料后,了解到是这样的:
集群:多个服务器,都可以实现同样的功能
如果大家有对分布式和集群更好的理解,也可以交流下。
五、缓存
缓存可分为四种:CDN,反向代理,本地缓存,分布式缓存。
缓存使用条件:1、数据访问模块不均匀 2、数据具有时效性
六、异步
业务的发展是需要快速响应的。比如我们去营业厅办理一个套餐变更,办理后成功后,我们就直接能查询到我们的套餐变了,但实际的业务是我们的部分资料已经变更过来,但具体功能还是需要后续操作才能完成。这就是异步的一种例子。数据请求后,返回用户结果,但业务还正在继续办理。
异步架构最典型的是生产消费者模式,两个不存在直接调用,只要保持不变就行了。举个例子:现在我们快递基本上都放在菜鸟驿站,快递员把快递放在菜鸟驿站后,他就不管了,然后我们某个时间去取,这个过程就是一个异步的过程。符合生产消费者模式。
七、冗余
冗余主要是高可用的解决方案。网站需要7*24小时运行,服务器容易随时故障,对于这种故障,一般是不可避免的。因此就需要数据备份,数据备份可以定期备份,热备份,冷备份。
八、自动化
在大型网站开发与维护中,自动化管理是不可缺少的部分。
自动化代码管理
现在我们经常使用SVN和Git进行版本控制,实际项目中,开发人员只需提交代码路径,开发人,版本,用途即可自动创建分支,合并代码。
自动化测试
现阶段的项目,使用自动化测试代替人工测试,人工测试,有很多弊端,自动化测试则可弥补这一现象。
自动化部署
将工程代码部署到生产环境上
自动化监控和自动化报警
大型系统都会有系统监控,会有探针去探测系统是否正常运行,若有故障,则会提醒相关人员
九、安全
安全问题是很多网站的重点。像华为等系统,都是采用内网专网部署。保证了系统的安全性。
此文章是根据日常开发对系统的理解和教授一书中总结。有不足之处,还望大拿们提点。