一个典型的大型互联网应用系统的技术方案 & 手段
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
互联网系统最大的问题就是用户量庞大、访问量大。由此引起一系列的问题。每年的双11, 618,电商系统的用户访问激增、下单量指数式增长。流量明星的悲欢离合有可能导致微博宕机。诸如此类。应对这些问题,或者由此引起的其他问题,总结了下面一些方法。
缓存技术
系统性能优化的第一步就是使用缓存技术,成本低见效快
客户端缓存:包括app客户端和浏览器。
cookie, localstorage, sessionstorage等
CDN缓存:把数据存在里用户最近的地方,主要解决图片、视频的加载速度,减少服务器请求
反向代理缓存:屏蔽和保护,可以缓存
分布式缓存:减少对数据库的直接访问
前端优化
压缩:js压缩、css压缩、图片压缩
延迟加载
合并:合并图片、合并请求
缓存:CDN缓存、客户端缓存
管道加载,流体加载
减少 cookie
分布式
将不同模块部署在不同的服务器上,通过远程调用协同工作
分布式服务和应用
分布式数据和存储
分布式缓存 —— NoSql
分布式队列 —— RabbitMq, Kafka
数据库分布式
分布式文件系统
分布式计算
Hadoop
MapReduce
注意:分布式事务/分布式锁的问题
集群
多台服务器做相同的事情
拆分
业务拆分:把不同的业务拆分为多个系统
中台:把公用的部分拆出来
运维与安全
异常监控:Exceptionless
数据采集:ELK (Elasticsearch Logstash Kibana)
容器化:docker, Kubernetes
自动化部署:Jenkins
运维自动化
攻击与防护
评论