专栏名称: 互联网后端架构
主要介绍Java后端架构。其中也会掺杂一些前端、GO、Python、Linux,目标:全栈工程师!---好像很牛叉的样子 ^-^
目录
相关文章推荐
51好读  ›  专栏  ›  互联网后端架构

架构设计实践五部曲(四):单体式与分布式的应用架构

互联网后端架构  · 公众号  · 架构  · 2019-11-07 08:30

正文

产品架构在业务架构的基础上,按照解决的业务问题域,划分出不同的功能模块,再根据功能模块间的关系,组合成子系统。应用架构在产品架构的基础上考虑两个事情:第一、考虑的是子系统间的关系。第二、考虑将可复用的组件或模块进行下沉,沉淀到平台层,为业务组件提供统一的支撑。应用架构是要说明产品架构分哪些应用系统,应用系统间是如何集成的,这就是应用架构和应用集成架构。

应用架构分为两种:一种是单体式应用架构、一种是分布式应用架构。

单体式应用架构就是系统只有一个应用,数据存储在一个 DB 等存储介质里面。

分布式应用架构是指存在多个系统,系统之间通过接口的形式进行调用,不同系统的数据存储在多个 DB 里面。

1. 划分应用

在做应用架构之前,我们已经完成了业务架构和产品架构这 2 步。在产品架构这个架构域,我们通过按照模块之间的聚合和分层,逐步形成产品内部子系统的边界。那么,按照子系统的边界进行切分,能得到整个产品的子系统组成。

还是以风控系统的产品为例,在产品架构这一环节,我们输出了下面的产品架构图。

图 1

应用架构的分解,通过对产品架构按照水平和垂直两个维度进行划分。

水平划分

在产品架构的环节,按照同一产品范围的模块放在同一层级的原则,得到水平层面的应用系统划分。只要产品架构明确定义了系统间的边界,很容易确定整个产品的各个子系统。

图 2

垂直划分

当应用内存在几个相对独立的模块,每个模块的业务逻辑差别比较大,且内部的组成较为复杂和庞大时,还需要进一步对应用内进行子系统的切分。这里的切分原则是,对应用内按业务进行切分,保证子应用是相互独立。

比如风控系统的案例中,在风控引擎这个应用中,存在实时、离线的校验场景。每种场景都是相对独立。这时候将这三个模块按照子系统进行切分成:实时风控引擎子系统、离线风控引擎子系统。

图 3

2. 单体式应用

单体式应用架构是比较传统的分为 4 层:数据层(Data Layer)、应用逻辑层(Business Layer)、表现层(Presentation Layer)和基础通用层(Common Layer)。

图 4

展现层

展现层是整个应用面向用户的入口,用户通过展现层实现与系统的交互。展现层为用户提供系统功能的操作、系统数据的展现。展现层按照面向的用户类型提供不同的交互服务。

例如在业务场景中,用户有实操层用户、管理层用户、决策层用户。针对不同层级的用户,系统所提供的功能是不相同。

面向实操层用户,提供的是对系统的操作功能,满足业务日常运营。往往更多的是执行具体操作。

面向管理层用户,满足管理者的日常管理需求,通常提供经营数据、日常管理数据、团队业务数据等等。通过数据分析,改善日常运营的流程。

面向决策层用户,这一层的用户不需要太细的数据,为其提供企业的经营诊断数据和报告,辅助决策支持。







请到「今天看啥」查看全文