写点什么

架构师第一期作业(第四周)

用户头像
Cheer
关注
发布于: 2020 年 10 月 10 日

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。



一个典型的大型互联网应用系统最主要挑战是:高并发与高可用。所采用的技术方案和手段主要围绕这两个挑战展开。

高并发

高并发就要求提高系统的吞吐量,从用户请求到响应返回的整个处理流程中,涉及到的各个环节都可以做一些技术方案和手段,来提升系统的整体吞吐。



从前端开始,可以采用CDN服务来加速,在CDN服务器上就将请求资源返回,可以有效降低用户请求到达业务服务器的数量。这对一些静态页面和图片文件等资源内容非常适用。



对于应用服务器,要想办法提升响应速度,最主要的手段就是缓存。可以做一些本地缓存或远程分布式缓存,将运算结果缓存起来,下次客户做相同的请求时直接从缓存中取数据,不需要再进行数据库操作和运算,这能大幅提升响应速度,从而提升业务处理吞吐量。



业务量继续上来的话,单应用服务器可能无法满足业务需求了,这时可启动多台应用服务器同时服务,形成应用服务器集群。集群前端设置负载均衡服务器,通过负载均衡服务将用户请求平均分配到各个业务服务器。这个主要是解决单个应用服务器服务能力问题,通过增加部署服务器,可以进行水平扩展,增加业务处理能力。



数据库方面,可以采取读写分离手段,主节点写入,从节点读取。这适用在数据量并不大,单机数据库能够hold得住,读请求高的情况下(大部分网站都是如此),通过配置多个只读数据库节点,来分担主节点的读请求。通过数据复制机制,在主节点和只读节点之间进行数据实时同步,保证主从节点的数据一致性。当数据量进一步大到单机数据库已存储不下时,可以进行水平拆分,将数据均匀分布到多个数据库节点中。



如果进一步发展,单一应用承载了太多的业务,就应该进行业务拆分,按领域或功能将单一的大应用拆分成多个小应用,每个小应用独立部署服务集群。



高可用

高可用就是要求在服务器出现故障时,服务依然可用。高可用主要手段就是冗余。通过部署多台服务器同时提供服务,把数据存储在多个数据服务器上互相备份,这样任何一台服务器故障都不会影响到应用整体可用性,也不会丢失数据。



发布于: 2020 年 10 月 10 日阅读数: 36
用户头像

Cheer

关注

还未添加个人签名 2018.11.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师第一期作业(第四周)