分层架构
模式介绍
最常见的架构模式
每层只接收上层的请求,每层都有特定的职责,下层被上层复用
分层对性能有一定影响,因为要创建更多的对象
通常有四层:表现层presentation、业务层business、持久层persistence、数据层database
相关概念
closed标记了这一层是封闭的。表示上层请求必须经过本层,不能绕过去。比如业务层不能直接调用数据层。
open标记开放层。表示这一层可以被绕过。
如果很多请求在某一层什么都没有做,那么可以尝试将这一层设置为open,不需要这一层的请求可以直接绕过这一层。
微内核架构
事件驱动架构
最常见分布式异步架构模式。
高扩展性、高适用性、低耦合度
调解器拓扑
适合事件具有多个有一定顺序的步骤的场景
组件:事件队列、事件调解器、事件通道、事件处理器
事件:初始事件、处理事件
事件队列:传递初始事件。消息队列、web服务都可以
事件调解器:编排初始事件中的步骤。允许事件并行。从初始事件中的每一步中,生成处理事件发送给事件通道
事件通道:传递处理事件。处理事件可由多个事件处理器处理。可以是消息队列或消息主题
事件处理器:接收处理事件,执行特定任务。
代理拓扑
没有中央事件调解器,消息流以链式方式分布在事件处理器中
处理流程简单
组件:代理器、事件处理器
管道架构
基于空间架构
微服务架构
替代单体应用和面向服务架构,单体应用过于耦合,而面向服务太复杂
服务组件颗粒度灵活,和意识几个模块或整个业务
组件之间需要远程访问协议进行通信(JMS、AMQP、REST、SOAP)
基于API REST的拓扑
为应用程序提供接口
细粒度、每个服务仅包含1-2个模块
提供单一功能的RESTful web服务
基于应用REST的拓扑
为用户提供接口
粗粒度、每个组件包括一整个业务
基于集中式消息传递的拓扑
不使用REST访问访问,而是使用集中式消息代理来访问服务(ActivaMQ、HometQ)
排队机制、异步消息、监控、负载均衡等