最近看dubbo和soul源码的时候,都遵循了 微内核 + 插件化的设计原则。

image.png

dubbo 高扩展,插件化思想

image.png

soul 提供了插件化能力

一句话,就是保住 核心系统的最小可用+ 插件机的可扩展性的设计原则。业务逻辑,都集成在插件系统中

https://www.processon.com/mindmap/605d9002e0b34d780e06f289

605d9002e0b34d780e06f289

引言

微内核架构是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品的应用。

一、基本架构

微内核架构包含两部分组件:核心系统(core system)和插件模块(plug-in modules)。应用逻辑被分割为独立的插件模块和核心系统,提供了可扩展性、灵活性、功能隔离和自定义处理逻辑的特性。

https://gitee.com/stephenshen/pic-bed/raw/master/img/20210124043550.jpg

  • 核心系统通常提供系统运行所需的最小功能集。负责和具体业务功能无关的通用功能
  • 插件模块插件模块是独立的模块,包含特定的处理、额外的功能和自定义代码,来向核心系统增强或扩展额外的业务能力。负责实现具体的业务逻辑

微内核架构的本质,是将变化封装在插件里面,从而达到快速灵活扩展的目的,而又不影响整体系统的稳定。

二、设计关键点

2.1 插件管理

  • 插件列表
  • 加载方式
  • 加载时机

常见实现方法:插件注册表机制

2.2 插件连接

插件如何连接到核心系统?

  1. 核心系统制定连接规范
  2. 插件按照规范实现
  3. 核心系统按照规范加载

常见连接机制:

  • OSGi(Eclipse使用)
  • 消息模式
  • 依赖注入(Spring使用)

2.3 插件通信

  • 核心系统需要提供插件通信机制

引用

330097518 服务通讯延伸能力 【重点推荐】⭐

637457.htm dubbo与微内核

141654274 dubbo微内核架构演进【重点】⭐

gfk2c1#fe59bb13 soul与微内核架构 ⭐

157615131 从零开始学架构 书籍内容

1426020 微服务知识普及

02丨进阶篇 (11讲)/07丨架构设计:设计一个灵活的RPC框架.html ⭐