大型互联网系统常用的技术方案
1、大型互联网系统的核心要素
高性能
高可用
可伸缩
可扩展
安全
2、主要的架构模式
2.1、横向分层
将系统横向拆分成多个子系统,比如视图层、应用逻辑层、公共服务层、存储层等,每一层职责单一,可根据每一层的特性进行优化和扩展。
2.2、纵向分割
将一个复杂的系统的每一层按不同的功能进行拆分,拆分后的每一个模块的功能相对单一,更利于维护,也可按需扩容,提升系统的并发能力。
2.3、分布式集群
将每个模块都部署在多台服务器上,并通过负载均衡将每一个模块都构建成一个集群,提升系统的并发及处理大数据量的能力。静态资源、服务、存储、计算、数据都可以实施分布式部署方案。
2.4、缓存
缓存是提升系统性能最简单有效的手段,比如CDN、反向代理、本地缓存、远程缓存。
将数据存储在离访问者更近或者访问速度更快的地方,减少网络开销、IO开销、计算开销。
2.4、异步
异步就是将模块间的直接调用改为消息驱动,可以解除模块间的耦合,提升系统的可用性、加快系统响应速度、消除并发访问高峰。
2.5、冗余
分布式部署其实就是实现的冗余,应用系统多台服务器互为冗余,现在很多存储技术实现了复本,就是对数据的一种冗余。冗余可以提升系统的可用性,数据安全性、数据读取的并发能力。
2.6、自动化
自动化运维主要是通过自动化的系统监控、部署、节点的管理,提升系统的可用性,在系统压力达到一定的阈值可以自动扩容,系统某个服务器或者进程出现故障,可自动剔除。
2.7、安全
安全是为了保护系统的用户的数据和财产安全,保障系统的稳定性,主要手段包含身份认证、数据加密、防XSS、SQL注入功能、风控管理等。
3、主要技术方案
3.1、前端架构
App和Web开发技术
浏览器和HTTP优化技术
CDN
动静分离
图片服务
反向代理
DNS
3.2、网关及应用层架构
网关架构
负载均衡
分布式缓存
分布式一致性(锁)服务
3.3、存储层架构
分布式文件
分布式关系数据库
NoSQL数据库
3.4、后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
3.5、运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
评论