5种主要的软件架构模式
极客时间编辑部
讲述:初明明大小:4.99M时长:05:28
你好,欢迎收听极客视点。
软件架构模式是经过验证的,具有良好设计结构的方法。更具体地说,架构模式是在实践中归纳总结的一组设计决策,具有明确定义的属性,并可以重复使用。
在《软件架构模式》一书中,提到 5 种软件架构模式:微内核模式、微服务模式 、分层架构模式、基于事件的模式、基于空间的架构模式。最近,Apium Academy CMO 叶卡捷琳娜(Ekaterina Novoseltseva)发文介绍了这 5 种架构模式,以下为王延飞的翻译。
微内核模式 (Microkernel Pattern)
微内核架构模式也称为插件模式。这种模式允许你将其他应用程序功能作为插件添加到核心应用程序,从而提供可扩展性以及功能分离。
微内核架构模式由两种类型的架构组件组成:核心系统和插件模块。
插件模块,提供应用程序功能和自定义处理逻辑的可扩展性、灵活性和隔离性。
传统上,微内核架构模式的核心系统仅包含使系统运行所需的最小功能。
优点
极大的灵活性和可扩展性
一些插件允许在应用程序运行时添加
便携、易于部署
插件模块可以单独进行测试
高性能,因为你可以自定义和简化应用程序以仅包括所需的那些功能
应用场景
从不同来源获取数据,转换数据并将其输出到不同地方的应用程序
工作流应用程序
任务类应用程序
微服务模式 (Microservices Pattern )
当你将应用程序作为一组微服务编写时,实际上就是在编写可以协同工作的多个应用程序。其中每个微服务都有自己的职责,团队可以独立于其他微服务进行开发。这些微服务之间唯一的依赖就是通信。当微服务彼此通信时,你必须确保它们之间发送的消息能够向后兼容。
优点
可以分别编写、维护和部署每个微服务
易于扩展
团队成员能快速响应且富有成效
高度可维护和可测试
可独立部署、更新,无需与其他团队协调即可部署其服务
应用场景
小型网站
边界明确的企业数据中心
快速发展的业务
和多部门协作的开发团队
分层架构模式 ( Layered Architecture Pattern)
分层体系架构模式是 n 层模式,其中软件系统组件根据职责被设计在不同的层中。
分层体系架构模式的每一层在应用程序中都有特定的角色和职责,组件之间职责分离。例如,显示层将负责处理用户界面交互逻辑,而业务层将负责执行与请求关联的特定业务规则。
优点
每一层都可以单独测试、单独更新
高度易于开发,因为这种模式众所周知,并且实现起来并不太复杂
大多数公司都通过逐层分离技能来开发应用程序
可维护
应用场景:
标准业务线应用程序,其功能不只是 CRUD 操作
需要快速构建的新应用程序
需要严格的可维护性和可测试性的应用
基于事件的模式 (Event-based Pattern)
这是用于开发高度可扩展系统最常见的分布式异步架构模式,该架构模式由用于监听并异步处理事件的一系列组件组成。事件驱动的架构模式构建了一个接收所有数据的中央单元,然后将其委托给处理特定类型的单独模块。
优点
容易适应复杂、混乱的环境
弹性伸缩
当出现新的事件类型时,很容易扩展
应用场景
具有异步数据流的异步系统
用户界面交互
基于空间的架构模式 (Space-based Pattern)
对于用户访问量经常发生变化、偶尔出现高并发的应用程序,这是一种有用的软件架构模式。通过消除中央数据库约束,并使用复制基于内存的数据网格来实现伸缩性。
基于空间的架构模式旨在通过在多个服务器之间拆分处理和存储数据,来避免高负载下的软件系统功能崩溃。
优点
能够快速响应不断变化的环境
尽管基于空间的架构模式通常不是分布式,但它们是动态的,并且基于云的复杂工具允许将应用程序轻松“推送”到服务器,从而简化了部署
通过内存中的数据访问和此模式中内置的缓存机制可实现高性能
高可伸缩性来自于对集中式数据库的依赖很小或根本没有依赖的事实,因此提高了可伸缩性
应用场景
数据量大的应用程序,例如用户日志
低价值数据,偶尔可能丢失而不会造成严重后果
社交类的应用程序
以上就是 5 种主要的软件架构模式,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论