5种主要的软件架构模式
5种主要的软件架构模式
1.微内核模式(Microkernel Pattern)
插件模块,提供应用程序功能和自定义处理逻辑的可扩展性,灵活性和隔离性。
传统上,微内核架构模式的核心系统仅包含使系统运行所需的小功能。
优点:
极大的灵活性和可扩展性
一些插件允许在应用程序运行时添加
良好的便携性
易于部署
能够快速响应不断变化的环境
插件模块可以单独进行测试。
高性能,因为你可以自定义和简化应用程序以仅包括所需的那些功能。
应用场景
从不同来源获取数据,转换数据并将其输出到不同地方的应用程序
工作流应用程序
任务类应用程序
2.微服务模式 (Microservices Pattern )
优点:
可以分别编写,维护和部署每个微服务
易于扩展,因为你可以仅扩展需要扩展的微服务
更新迭代应用程序的各个部分比较容易,因为它们较小,并且与其他部分的耦合较少
团队成员能快速响应且富有成效
高度可维护和可测试–微服务模式满足快速频繁的开发和部署
可独立部署–无需与其他团队协调即可部署其服务
应用场景:
小型网站
边界明确的企业数据中心
快速发展的业务
多部门协作的开发团队
3.分层架构模式( Layered Architecture Pattern)
优点:
高可测试性,每一层都可以单独测试。
高度易于开发,因为这种模式众所周知,并且实现起来并不太复杂,而且大多数公司都通过逐层分离技能来开发应用程序,这种模式已经成为大多数业务应用程序开发的自然选择。
可维护
易于单独更新某一层
应用场景:
标准业务线应用程序,其功能不只是CRUD操作
需要快速构建的新应用程序
适用于经验不足的开发团队
需要严格的可维护性和可测试性的应用
4.基于事件的模式(Event-based Pattern)
优点:
容易适应复杂,经常混乱的环境
弹性伸缩
当出现新的事件类型时,很容易扩展
应用场景:
具有异步数据流的异步系统
用户界面交互
5.基于空间的架构模式(Space-based Pattern)
优点:
能够快速响应不断变化的环境。
尽管基于空间的架构模式通常不是分布式,但它们是动态的,并且基于云的复杂工具允许将应用程序轻松“推送”到服务器,从而简化了部署。
通过内存中的数据访问和此模式中内置的缓存机制可实现高性能。
高可伸缩性来自于对集中式数据库的依赖很小或根本没有依赖的事实,因此提高了可伸缩性。
应用场景
数据量大的应用程序,例如用户日志
低价值数据,偶尔可能丢失而不会造成严重后果
社交类的应用程序
相关文章