- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
自从做了一些平台化系统之后,发现最原始的抽象,建模,分层,内聚,低耦合,面向对象变得越来越重要了,有的时候技术就是这样,那些最本质,最朴实的东西,有种返璞归真的感觉,当然其他很多事情也一样,因为不管是技术,架构还是其他事情,我们都是要去提出问题并解决问题的,而将问题划分成小的问题去解决是最重要的方法论。
说到软件架构模式,什么是软件架构模式呢?
软件架构模式指的是那些被验证了的,经历过复杂性洗礼的,具有良好的设计结构的系统。也就是在实践过程中归纳总结出的一套设计决策,具有明确的定义和属性,可以重复使用,提高效率,降低复杂度和心智负担。
那么市面上有哪些值得实践的软件模式呢?
1、微内核模式
2、微服务模式
3、分层架构模式
4、事件驱动模式
5、空间架构模式
微内核模式
微内核也称为插件模式,允许业务方可以将其他应用程序逻辑以插件方式,添加到核心应用逻辑中,从而实现了可扩展性,做到了核心逻辑和业务逻辑的功能分离。
这也是我们做平台化系统中首先想到的一点,平台沉淀那些通用的逻辑,流程,规则。个性化的业务逻辑以插件方式集成到平台上,个性化逻辑在插件内自组织,自流转,实现了平台和业务的隔离。
微内核模式包含两部分:核心系统和插件模块。
1、 核心系统:提供程序功能和自定义处理逻辑的扩展能力,具有灵活性,扩展性和隔离性
2、一般微内核模式的核心系统只包含系统运行所需的最小功能
微内核最佳的示例是来源于Eclipse IDE,我们系统变成微内核架构需要具备以下的一些特点:
1、灵活性和扩展性
2、运行插件可以在运行时加载和卸载
3、操作便捷
4、易于部署
5、插件可以独立进行测试
6、高性能,简化应用程序所需功能
微服务模式
随着微服务的流程,我们会将原有的一体架构拆成微服务架构,一组微服务实现某一个逻辑上的业务能力。微服务自身具有独立的功能职责,团队可以就具体的微服务进行开发测试,微服务之间通过通信完成信息交互。
我们在平台化架构中,还是将具体的功能方向的服务进行进一步抽象,变成独立的微服务,多个微服务在逻辑上组成了平台的某个业务能力。
相信大家对于微服务都比较熟悉了,就不再赘述了,微服务的优点如下:
1、可以独立编写,维护和部署
2、易于扩展,业务迭代只需修改对应的微服务
3、因为微服务相对隔离,不会影响其他业务,实现解耦
4、团队响应迅速
5、可独立测试,部署,迭代效率高
分层架构
软件架构被水平的分成多层,每层具有独立的职责。大多数架构常用的架构模式就是分层了,从最开始接触的三层架构,到后期的MVC,MVP架构,都透漏着分层的影子。
分层架构要求每一层具有特定的角色和职责,比如负责显示的显示层可以处理用户交互逻辑。业务逻辑层主要负责请求逻辑和数据之间的组合和处理规则。
分层架构要求每一层处理该层相关的逻辑,我们在平台化系统中的分层更加抽象,不再是以具体的业务进行划分,而是按照抽象的能力划分成多个层了。
分层架构的优点:
1、可测试性,每层可独立测试
2、易于开发,由于功能相对隔离,开发比较简单,但是需要防止同一层之间的能力过于分散,可以引入领域的方式进行二次隔离
3、每次功能点可以修改独立的一层即可完成
事件驱动模式
这是一种高扩展的解决方案,架构中通过监听并异步处理事件方式组成一系列组件。事件驱动模式构建了一个接收所有数据的中央处理单元,之后将事件委托给特定事件类型的模块单独处理。
事件驱动多用于平台架构中非业务相关的功能,通过事件监听与处理实现了进一步解耦,多用于数据流驱动或是用户界面交互。
事件驱动的优点是:
1、 可以通过事件解耦,适应混乱环境
2、具有弹性能力
3、当出现新的事件时,容易扩展
空间架构模式
空间架构模式多用于解决软件系统的伸缩性和并发性问题。对于用户量经常发生变化,偶尔出现并发的系统,可以采用这种架构。通过消除对于数据库的依赖,使用复制基于内存的数据实现伸缩性。
空间架构模式主要是希望通过多个服务器之间拆分处理和存储数据,避免高负载下软件系统的崩溃。
优点:
1、可以快速适应变化
2、通过内存中数据访问内置的缓存,实现了高性能
3、高伸缩性来源于降低了对集中数据库的依赖,或是没有依赖,提高了伸缩性
4、空间架构可以看作是一种围绕于数据源的异构,无状态的处理方式。
以上几种架构可以按需使用到系统之中,以解决不同的问题。
售前咨询
售后咨询
备案咨询
二维码
TOP