写点什么

极客大学 - 架构师训练营第一期 - 第四周作业

发布于: 2020 年 10 月 12 日

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

数据库

查询优化

垂直切分


将一张大表拆分成若干小表,例如:一张大表时在某些业务场景下平凡更新个别字段并且改映射的实体类确实可以进一步逻辑拆分成若干个小实体类

水平切分

随着业务量的增加数据不断增多导致查询变慢,通过分表方式提升查询效率,例如通过哈希去模方式对用户账号库进行分表

索引优化

针对 SQL 进行查询索引优化提升速度减少服务延迟时间


主从服务

在使用单台数据库的情况下业务服务器在较高峰值的访问压力往往会最终导致数据库访问的压力,但是业务往往是读的多而写入操作要少于读操作,所以为了减轻数据库访问压力将数据库改为主从方式,读取业务直接访问 Slave 服务器,写入操作则访问 Master 服务器,比如 MySql 数据库的 Master 数据负责写入,更新,删除而 Slave 通过 binlog 日志同步数据提供程序的读服务。减轻业务服务器在高并发的情况下对数据库的访问压力。

分布式数据库

解决数据在大量情况下的分库分表等问题。


内容分发(CDN)

网络服务中有大量的静态数据资源如:图片,静态网页,文件这些资源都是需要耗费大量的服务计算资源和网络带宽,往往会对服务造成较大的访问压力,通过 CDN 网络对资源进行有效的存储,用户访问资源时会从最近的网络节点获取资源。

NoSql

使用缓存对计算过或者查询过的数据进行缓存,只有发生过更新或者失效之后才会对数据进行重新计算或者从数据库查询最新数据并更新至缓存,主要是为了减少频繁的查询业务导致 IO 压力增大而导致服务吞吐量减少,缓存可以大大减少 IO 查询而提升服务的吞吐量。

例如:可以将用户的 session 缓存起来,那么服务器就可以是无状态的分布式服务器,这样可以更好的提供服务

消息中间件

在大型互联网应用中,往往是有一个以上的应用服务,服务之间的数据传输有时候会遇到大量激增的数据,数据的接受者有可能因为处理能力不足导致整个数据接收出现问题,消息中间件就是为了解决消费者和生产者之间数据接收与传输等问题。通过订阅,路由等策略满足分布式业务场景对数据处理要求。

微服务


负载均衡


用户头像

还未添加个人签名 2019.01.25 加入

还未添加个人简介

评论

发布
暂无评论
极客大学-架构师训练营第一期 - 第四周作业