06 - 4 微内核架构

微内核架构是一种将核心功能最小化,将其他功能作为可插拔模块的设计方式。这种架构允许系统通过核心定义的接口与插件交互,实现职责分离,提高系统的稳定性和可测试性。插件通过注册和自定义通信机制进行连接,可以在运行时动态加载或卸载,降低了系统升级和维护的复杂性。然而,这种架构的开发难度较高,且可能面临插件间的兼容性问题。设计微内核系统需要明确核心功能,定义开放接口和通信机制,以及实现插件的装载机制。
摘要由CSDN通过智能技术生成

什么是微内核架构

定义

  • 微内核
    • 核心功能
    • 资源封装
  • 插件
    • 可插拔
      在这里插入图片描述

系统核心

  • 资源封装
    • 硬件接口
    • 系统资源访问接口
    • 环境/上下文(context)访问接口
    • 系统事件接口
  • 定义插件规范
    • 使用场景
    • 规则
    • 条件
  • 核心功能
    • 支持系统运作的最小功能集
  • 职责分离
    • 通用流程由核心系统定义
    • 核心定义规范,插件具体实现

插件模块

  • 核心系统能力的扩展
    • 遵循核心系统规范
    • 实现其逻辑外延和业务逻辑
  • Single Responsibility
    • 专注于其独立功能
    • 只能通过核心提供的接口操作系统资源
  • 插件间无依赖
    • 尽可能避免依赖其他插件

注册

  • 插件可用性
  • 获取插件的方式
  • 插件信息抽象规范:名称、数据规范、访问协议

连接

  • 自定义连接方式
    • OSGI,点对点绑定(依赖注入)
    • web service,message,etc
  • 通信规范
    • 标准规范配合版本策略
    • 自定义规范配合Adapter

事件

在这里插入图片描述

微内核架构的优缺点

优点

  • 符合开闭原则
    • 核心系统封闭
    • 插件提供开放性
    • 整体系统可以持续升级
  • 良好的隔离性
    • 核心系统可以关闭插件
    • 错误的传播范围有限
      • 插件内的错误不会被传播到核心系统
    • 各自独立升级改进
      • 可能有兼容性问题
  • 灵活性
    • 核心系统保持稳定,将变化尽量隔离在插件层
    • 插件根据核心提供接口规范和规范来提供丰富的功能
    • 整体保持开放,持续进化
  • 可测试性
    • 核心系统和插件系统可以分开测试
    • 插件可以运行在模拟环境
  • 性能
    • 通过简化核心系统,提高性能
    • 插件按需加载,降低资源消耗
    • 可以动态关闭插件以保护核心系统
  • 易于部署
    • 插件可在运行时动态添加到核心系统
    • 减少核心系统停机时间

缺点

  • 开发难度高
    • 需要分离核心功能与插件功能
    • 插件需要可以热插拔
    • 需要专门注册协议和通信协议
  • 可扩展性不高
    • 主要用于开发产品,不考虑扩展性
    • 不以可扩展性见长
    • 可以结合其他模式获得扩展性

设计微内核系统

设计系统核心

  • 定义核心功能:实现MVP
  • 封装系统资源:插件通过接口访问
  • 开放集成点

定义开放规范

  • 核心系统提供的接口及版本
  • 上下文(context),环境参数
  • 回调(call back)、钩子(hook)、事件(event)
  • 集成规范

注册规范

在这里插入图片描述

定义通信机制

  • 同步/异步
  • 本地/远程
  • 数据格式

实现插件

在这里插入图片描述

装载插件

  • 基于注册表获取插件信息
  • 装载机制
    • 启动期/运行期
    • 内存/远程
  • 装载条件(触发条件)

经典应用:操作系统

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值