训练营第四周学习总结
大型互联网架构面对的挑战:
高并发/大流量
海量数据
高性能
高可用
伸缩性
安全性
用户广泛,网络情况复杂
业务需求迭代快,发版频繁
渐进式发展
我们选择的解决方案就是水平可伸缩性扩展
架构设计中的原则和模式
分层,横向上可以做成MVC层次,在三层架构之间可以增加中间件,起到润滑的作用
业务拆分,纵向上根据业务的纬度,把整个系统的内容拆分成不同的领域,DDD设计中可以拆分成核心域,通用域,支撑域。不同的领域提供不同的能力,业务模块可以集合不同领域的业务。
分布式,把拆分的领域部署在不同的服务器上,这样物理资源隔离,不会造成资源竞争
集群,把相同的领域部署在不同的服务器上构成一个群组,提供高可用的服务,也为高并发,海量数据提供了基础
缓存:改善访问请求的速度,CDN,nginx,Redis,本地缓存,提高查询速度,降低数据库的压力
异步:服务之间通过消息队列相互调用,不再强耦合,可以做到削峰填谷,降低高并发的压力
冗余:集群在高可用的方面提供了一定的能力,但是还要注意数据的备份,比如主从数据库,缓存集群,消息中间件集群等技术
自动化:自动监控,自动发版,自动下线,自动上线
安全:通信加密,权限校验,身份验证,短信验证,风控等
架构优良的纬度
高性能,高TPS的反应速度
高可用,7*24服务的提供
伸缩性:弹性扩展是否无感知
可扩展:业务上的功能扩展
安全性:保证数据的安全
前端的架构
App及web开发技术
http及网络优化技术
CDN
动静分离
图片服务
方向代理
DNS
网关及应用层架构
网关架构
负载均衡
动态页面静态话
业务拆分
服务层架构
微服务架构
分布式缓存
分布式消息队列
分布式一致性服务
存储层架构
分布式关系数据库
分布式文件服务器
NoSql数据库
后台架构
大数据引擎
搜索引擎
推荐引擎
数据仓库
运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
评论