系统分层
常见的互联网分层架构
(1)客户端层:客户端层是浏览器browser或者手机应用APP;
客户层:支持PC浏览器、手机APP、H5页面。 差别是手机APP可以直接访问通过IP访问(而不仅仅是域名)访问接入层服务器。
(2)接入层:系统入口,负载均衡、反向代理;web服务 ; dns、cdn
流量分发、负载均衡按照用户规模,流量规模(吞吐量规模),接入层的架构方案不一样。
(3)服务层:实现核心应用逻辑,返回json或者html
服务层:提供公用服务,比如用户服务,订单服务,支付服务等;
公共基础能力服务治理,统一配置,统一监控
(4)缓存层:缓存加速访问存储;
请求大致分为两类:读请求、写请求
多级缓存:整个系统架构的不同系统层级进行数据缓存,以提升读取的效率。
Tomcat堆缓存(一级)、分布式缓存(二级)、Nginx本地缓存(三级)。
HTTP缓存:根据服务器端返回的缓存设置响应头将响应内容缓存到浏览器。减少浏览器端和服务器端 之间来回传输数据量,节省带宽。
(5)数据库层:结构化db和异构db;
包含结构化数据(关系型)数据库集群(支持读写分离)
还包含异构数据(非关系型、NOSQL)集群,
还包含分布式文件系统集群;
1. 大数据存储层:支持应用层和服务层的日志数据收集,关系数据库和NOSQL数据库的结构化和半 结构化数据收集;
2. 大数据处理层:通过Mapreduce进行离线数据分析或Storm实时数据分析,并将处理后的数据存 入关系型数据库。
(6)中间件: zk、xxl-job,rocketmq;