架构师修炼之道-读书笔记-第七八章
七、架构模式
架构模式是针对特定问题的可复用解决方案,通过特定的结构组合提升某方面的质量属性。
常见的架构模式
1、分层模式
一般分为展示层、业务层和数据层。
元素:层 一组功能内聚的模块
关系:允许使用 哪些层可以使用其他层的模块
使用规则:一般来说上层允许使用下层,反之不成立。上层一般使用其直接下层。
优势:可运维性、可移植性、可复用性、可测试性、可修改性都比较强
劣势:每层都引入了额外的抽象,增加了复杂度,可能影响性能。
2、端口适配器模式
隔离了核心业务逻辑,确保可以在多个环境下使用
3、管道过滤器模式
每个组件都是一个过滤器,处理数据转换和数据操作。上一个过滤器的输出是下一个过滤器的输入。
数据通过管道进行传输
4、面向服务架构模式
用独立的组件提供特定功能的服务,运行时整合在一起,决定了系统的行为。
需要提供一个服务注册表,用来进行服务注册。方便服务之间查找
5、发布订阅模式
分为消费者和生产者以及事件总线。生产者发布事件到事件总线。消费者订阅事件,事件总线推送事件。
6、共享数据模式
多个组件通过公用数据库访问数据
7、多层模式
8、能力中心模式
9、开源贡献模式
10、大泥球模式 即没有模式
总结:常用的是分层模式。如果业务逻辑单一,但是存在多个不同格式的输入,可以考虑使用端口适配器模式。
如果业务逻辑主要是数据转换和处理,并且前后存在依赖,即数据驱动业务。可以考虑管道过滤器模式。
如果业务繁多,业务之间关系不强。可以考虑面向服务架构模式。
如果业务更关注某些事件的触发,即事件驱动的业务。那么考虑使用发布订阅模式
八、建立模型、化繁为简
协作和抽象
协作 与他人合作 用大规模并行工作解决问题
抽象 建立抽象概念来压缩表示大量信息。
常见元模型:定义概念 即元素和关系,然后建立概念使用规则
分离概念的过程成为好奇心循环,总是从提问开始。提问是检测的手段
保持一致性,对相似的概念进行合并,对同名不同义的概念更名