大型互联网站技术猜想
1 一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
相信我,虽然我没吃过猪肉,但我见过猪跑,不会骗你!
大型互联网应用系统,已不再是可以依靠哪一台超级计算机可以单独完成工作,而是由一个或多个分布式集群共同构建的分布式计算、分布式缓存、分布式存储、分布式协调的系统。
分布式计算
业务垂直拆分
按业务领域进行拆分、微服务极小化管理、灰度部署、滚动升级,使开发、测试、部署快速迭代,核心业务独立部署、分布式计算、弹性伸缩,有效提升机器的利用率。
水平分层,弹性伸缩
根据水平分层,拆分出网关层、服务层、持久层
异步机制
在一些非实时业务场景,异步机制可以缓解线上计算压力,起到销峰填谷的作用。
分库分表、分布式存储
数据存储是整个计算系统最薄弱的环节,为了缓解数据库的压力,可以按业务对数据库进行拆分,按维度对表进行水平拆分,做到分库分表,读写分离。
热点数据分布式缓存
为了缓解IO压力,需要对热点数据进行缓存,数据可以根据业务场景缓存在:
客户端
CDN或反向代理服务器
应用服务本地缓存及全局分布式缓存
分布式协调调度
分布式协调调度服务的引入,使分布式系统各节点可以分工协作共同完成任务,保证数据的一致性。
高性能、高可用
由于业务通常是高并发的,这就要求系统必须具备高性能、高可用
评论