1、软件架构设计的六大原则:
1)“开-闭”原则(OCP)
Software entities should be open forextension, but closed for modification.
对扩展开放,对修改封闭。
2)里氏代换原则(LSP)
凡是基类适用的地方,子类一定适用。
3)依赖倒转原则(DIP)
要依赖抽象,不要依赖具体。
4)迪米特法则(LoD)
一个对象应该对其他对象有尽可能少的了解。
5)接口隔离原则(ISP)
使用多个专门的接口比适用单一的接口要好。
6)合成/聚合复用原则(CARP)
要尽量使用合成/聚合,尽量不要使用继承。
2、大数据平台典型的架构层:
根据数据的流向自底向上划分五层,跟传统的数据仓库其实很类似,数据类的系统,概念上还是相通的,分别为数据采集层、数据处理层、数据分析层、数据访问层及应用层。同时,大数据平台架构跟传统数据仓库有一个不同,就是同一层次,为了满足不同的场景,会采用更多的技术组件,体现百花齐放的特点,这是一个难点。
1) 数据采集层:既包括传统的ETL离线采集、也有实时采集、互联网爬虫解析等等。
2) 数据处理层:根据数据处理场景要求不同,可以划分为HADOOP、MPP、流处理等等。
3) 数据分析层:主要包含了分析引擎,比如数据挖掘、机器学习、深度学习等。
4) 数据访问层:主要是实现读写分离,将偏向应用的查询等能力与计算能力剥离,包括实时查询、多维查询、常规查询等应用场景。
5) 数据应用层:根据企业的特点不同划分不同类别的应用,比如针对运营商,对内有精准营销、客服投诉、基站分析等,对外有基于位置的客流、基于标签的广告应用等等。
6) 数据管理层:这是一纵,主要是实现数据的管理和运维,它横跨多层,实现统一管理。