Neo's Blog

不抽象就无法深入思考
不还原就看不到本来面目!

0%

分布式系统-分层与抽象

一个复杂的应用程序可能会有更多的中间层次,比如基于API的API,不过基本思想仍然是一样的:

每个层都通过提供一个明确的数据模型隐藏更低层次中的复杂性

这些抽象允许不同的人群有效地协作(例如数据库厂商的工程师和使用数据库的应用程序开发人员)。

以上采用七层逻辑架构,第一层客户层,第二层前端优化层,第三层应用层,第四层服务层,第五层数据存储层,第六层大数据存储层,第七层大数据处理层。

客户层:减少Http请求数,浏览器缓存,启用压缩,Js异步,减少Cookie传输;

前端层:DNS负载均衡,CDN本地加速,反向代理服务;

应用层:业务拆分;负载均衡,分级管理,应用缓存,服务集群,快速失败,异步调用,服务降级,消息队列,幂等设计等。

服务层:提供公用服务,比如用户服务,订单服务,支付服务等;

数据层:分布式, 数据库集群,读写分离,NOSQL集群,文件系统集群;分布式缓存;冗余备份(冷,热备[同步,异步],温备),失效转移(确认,转移,恢复)。CAP理论,一致性算法。

大数据存储层:支持应用层和服务层的日志数据收集,关系数据库和NOSQL数据库的结构化和半结构化数据收集;

大数据处理层:通过Mapreduce进行离线数据分析或Storm实时数据分析,并将处理后的数据存入关系型数据库。(实际使用中,离线数据和实时数据会按照业务要求进行分类处理,并存入不同的数据库中,供应用层或服务层使用)。

你的支持是我坚持的最大动力!