作业:一个典型的大型互联网架构演进采用的技术

发布于: 2020 年 07 月 01 日
作业:一个典型的大型互联网架构演进采用的技术

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

1、业务应用和数据库分离;

解决问题:降低系统服务器的CPU、内存、IO方面的瓶颈;

2、使用分布式缓存redis、memerycache等,

解决问题:降低数据库的IO访问,降低数据的查询时间,提高接口查询效率和TPS;

3、数据库主从复制,读写分离,数据库主用库来写,从库用来读;

解决问题:降低主库的IO压力,充分利用从库的资源;

4、软件层,NGINX反向代理负载均衡调度;

解决问题:应用多实例部署,集群化,提高业务处理能力,提高业务可用性

5、通过CDN访问静态资源

解决问题:提高静态资源的访问速度;

6、部署分布式文件服务器

解决问题:提高静态文件的访问速度;

7、部署ElasticSearch类NOSQL

解决问题:提高数据查询效率,并可存储海量的数据;

8、部署分布式数据库服务器、分部署缓存

解决问题:提高业务数据的存储容量,水平扩展服务节点;

9、按业务模块对业务数据库分库,对大表进行分表、数据分片;

解决问题:降低单个数据库或集群的性能压力;降低单表的大小;

10、对数据进行冷热数据分离;

解决问题:提高常用数据的查询效率,降低存储资源的成本;

11、根据业务模块、业务功能,对业务组件进行拆分、解耦;

解决问题:解耦业务组件,可独立部署,提升单个业务组件的处理能力;

12、采用分布式消息队列,异步方式处理业务

解决问题;提高业务处理并发能力;提高可用性;消除并发访问高峰

13、对业务服务器节点冗余部署

解决问题:防止单点故障;

14、多机房分布部署,部署主备容灾节点

解决问题:异地容灾备份,防止业务故障导致的

15、升级服务器配置,提高CPU 、内存、更换SSD

解决问题:提高单台服务器的性能,提高处理能力;

16、采用微服务架构,容器化部署

解决问题:可实现快速部署,提高版本迭代效率;

17、架构分层,横向、纵向进行划分

解决问题:各个模块解耦,职责单一,便于分解给不同的团队去开发实现;

18、统一的API接入网关

解决问题:流量控制,安全策略控制;

19、对REDIS、ElasticSearch 、KAFKA等中间件根据业务模块进行垂直拆分;

解决问题:业务数据量太大,单个集群水平扩容已经达到了性能瓶颈;

20、打造中台底座能力

解决问题:将基础能力公共化,上层业务调用基础服务,加快业务迭代速度;

用户头像

蒜泥精英

关注

还未添加个人签名 2018.09.19 加入

还未添加个人简介

评论

发布
暂无评论
作业:一个典型的大型互联网架构演进采用的技术