1.架构模式
架构模式是针对特定问题的可复用解决方案,它通过特定的结构组合提升某方面的质量属性。选择合适的架构模式解决问题就不用从零开始设计架构,从而避开诸多导致麻烦的陷阱。以下三种是常见的架构模式。
1.1三层模式
每一层完成不同的任务。对web 应用来说,展现层负责U渲染,业务层运行于服务器端负责验证业务规则,数据库负责存储数据。
1.2发布-订阅模式
所有元素都将消息发布到事件总线上。组件可以订阅感兴趣的消息。事件可能不按顺序传送,也不确保传送成功(视消息系统的规则而定)。
1.3面向服务架构模式
服务都在中央注册表注册,以便调用者可以找到它们。组件查找并直接调用这些服务,服务响应并回复信息(出现问题则不响应)。
1.4如何选择不同的模式?
三种模式分别提升和抑制了不同的质量属性。你会如何选择?
多数情况下,三层模式最理想。它易于测试、部署、描述。不过这种简单性是有代价的。三层模式很难提升可伸缩性和可用性等质量属性。如果不在架构中补充其他模式,三层模式可能无法满足我们的所有需求。
发布-订阅模式具有较高的可更改性和灵活性。虽然这种灵活性很适合构建松耦合系统,但它也有缺点。在我们的数据驱动应用中,消息顺序对事件有影响,仅靠发布-订阅模式不能保证正确的消息顺序。如果选用合适的消息总线技术,也能让发布-订阅模式勉强工作,但不够干净利索。
面向服务的架构具有可更改、灵活、可测试的特点,同时它也易于扩展,比其他模式更容易提升可用性。但它是三种模式中最复杂的,架构设计的工作量最大。我们的应用采用这种模式有点小题大做了。
这三种模式都可以用来实现我们的功能需求,选择架构模式关键要看质量属性。针对既定质量属性,要分出各种模式的优劣,我们还需要做进一步的分析。
2. 架构图分类
2.1 按业务划分
2.1.1 业务架构(按业务划分)
2.2 按领域(后端)划分
ps:此处只讨论后端,不讨论客户端和前端