架构师 0 期 | 大型互联网系统使用了哪些技术?
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?
请列举描述。
大型互联网系统主要面临的问题
业务规模大,用户体量大所导致的高并发访问请求引起的问题。
当面对大体量的用户访问时,整个技术挑战就会变得完全不一样。
垂直伸缩
最快速的解决方法是,直接提升单台服务器的能力,加CPU,加内存,换更强的硬件。
升级为小型机、中型机、大型机。
优点是快。
缺点是价格高昂,有瓶颈,到一定程度之后就无法再加配置了。
水平伸缩
通过使用更多的一般服务器,将它们构成一个分布式集群。对外提供服务,当做一个整体来用。这样提升的性能理论上来说是无限的。以Google为例,目前大约有200万台服务器支撑着它的服务。
随着演进会不断使用如下技术
数据库与应用分离,分别部署: 就可以成倍的提升性能。
增加缓存:数据库的IO很容易成为瓶颈,因为它是最慢的。把常用的数据放到内存(缓存)中,就能迅速响应。
负载均衡:应用程序成为瓶颈,部署多台应用服务器,通过负载均衡对外提供服务。
数据库读写分离:根据业务情况,一般来说写的业务都会相对较少。使用多个从数据库对外提供读操作,主数据库提供写操作。
分布式文件系统:文件系统跟应用程序一样,多台服务组成集群。
分布式数据库、NoSQL数据库:提供更好的数据库性能。
搜索引擎:当数据库查询已经没法满足时,可部署独立的搜索引擎提供查询服务。
CDN:使用运营商提供的(内容分发网络),让用户在最近的节点直接下载图片文件等静态资源。
前端反向代理:多服务器集群提供前置缓存,直接把静态资源返给用户。
分布式消息队列:解耦子模块,可以迅速返回,不阻塞线程。待业务完成后再通知把相应数据传过去。
阿里云时代
可伸缩服务器:根据业务需求可自由升级配置
CDN:花钱就可以使用,后付费,用多少花多钱
OSS:存储文件
SLB:负载均衡
攻击防护:保护安全
服务器监控:监控服务器情况
大屏系统
数据监控系统
数据采集系统
业务量系统
中台
版权声明: 本文为 InfoQ 作者【刁架构】的原创文章。
原文链接:【http://xie.infoq.cn/article/42db080d157cf7bd5e464c4cf】。文章转载请联系作者。
评论