架构师第一期作业(第四周)
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
一个典型的大型互联网应用系统最主要挑战是:高并发与高可用。所采用的技术方案和手段主要围绕这两个挑战展开。
高并发
高并发就要求提高系统的吞吐量,从用户请求到响应返回的整个处理流程中,涉及到的各个环节都可以做一些技术方案和手段,来提升系统的整体吞吐。
从前端开始,可以采用CDN服务来加速,在CDN服务器上就将请求资源返回,可以有效降低用户请求到达业务服务器的数量。这对一些静态页面和图片文件等资源内容非常适用。
对于应用服务器,要想办法提升响应速度,最主要的手段就是缓存。可以做一些本地缓存或远程分布式缓存,将运算结果缓存起来,下次客户做相同的请求时直接从缓存中取数据,不需要再进行数据库操作和运算,这能大幅提升响应速度,从而提升业务处理吞吐量。
业务量继续上来的话,单应用服务器可能无法满足业务需求了,这时可启动多台应用服务器同时服务,形成应用服务器集群。集群前端设置负载均衡服务器,通过负载均衡服务将用户请求平均分配到各个业务服务器。这个主要是解决单个应用服务器服务能力问题,通过增加部署服务器,可以进行水平扩展,增加业务处理能力。
数据库方面,可以采取读写分离手段,主节点写入,从节点读取。这适用在数据量并不大,单机数据库能够hold得住,读请求高的情况下(大部分网站都是如此),通过配置多个只读数据库节点,来分担主节点的读请求。通过数据复制机制,在主节点和只读节点之间进行数据实时同步,保证主从节点的数据一致性。当数据量进一步大到单机数据库已存储不下时,可以进行水平拆分,将数据均匀分布到多个数据库节点中。
如果进一步发展,单一应用承载了太多的业务,就应该进行业务拆分,按领域或功能将单一的大应用拆分成多个小应用,每个小应用独立部署服务集群。
高可用
高可用就是要求在服务器出现故障时,服务依然可用。高可用主要手段就是冗余。通过部署多台服务器同时提供服务,把数据存储在多个数据服务器上互相备份,这样任何一台服务器故障都不会影响到应用整体可用性,也不会丢失数据。
版权声明: 本文为 InfoQ 作者【Cheer】的原创文章。
原文链接:【http://xie.infoq.cn/article/240d6584c1829bf7fb03615c0】。未经作者许可,禁止转载。
评论