一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
1、缓存:缓存通过将经常访问的数据存入内存中,用以缓解数据库服务器 IO 压力,来提升系统读性能。
2、增加应用服务器:将原先需要一台服务器处理的请求,分散到多台机器上,提升系统并发处理能力。
3、数据库读写分离:将数据库读和写分散到多台机器上,主服务器用于承担写和少量的读,从服务器承担系统主要的读性能,从而缓解数据库读写压力。
4、CDN:通过使用 CDN 服务器,将系统中大量需要重复访问的静态资源(如图片、CSS)等存储在离用户最近的运营商机房,从而降低系统带宽消耗,提升网站的相应效率。
5、分布式数据库系统:前面虽然使用了数据库读写分离,缓解了大量的读写压力。但由于在读写分离方案中,写数据库的压力都由主服务器来承担。随着系统用户数的增加,系统数据量随之激增,一台服务器已经无法承担系统所有的写压力。分布式数据库通过将数据进行分片存储到多台机器上来解决之前一台机器的压力问题,提升系统性能。
6、搜索引擎和 NoSQL:用于提升系统搜索性能
7、业务拆分:通过将一个大系统拆分成小的系统,提升开发、维护、部署的效率。
8、微服务和中台化:通过服务化拆分,提升服务复用性,解决之前通过 jar 包方式可能带来的不一致性。
评论