从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)
152573 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 66 讲
结束语 (1讲)
结课测试 (1讲)
从 0 开始学架构
15
15
1.0x
00:00/00:00
登录|注册

37 | 微内核架构详解

插件通信
插件连接
插件管理
服务层
生命周期层
模块层
JBoss Drools
数据流和事件流
规则语言
规则库
服务检索
服务注册
Spring DM
Felix
Equinox
MANIFEST.MF
Bundle
规则引擎架构
数据流和事件流
OSGi架构
插件注册表机制
规则引擎架构也是微内核架构的一种具体实现,通过插件管理、插件连接和插件通信实现业务规则的灵活配置和执行
OSGi架构是一种常见的微内核架构实现,通过插件管理、插件连接和插件通信实现功能扩展和插件间的通信
微内核架构包含核心系统和插件模块两类组件
微内核架构是一种面向功能进行拆分的可扩展性架构
插件通信
插件连接
插件管理
插件通信
插件连接
插件管理
插件通信
插件连接
插件管理
总结
规则引擎架构
OSGi架构
微内核架构

该思维导图由 AI 生成,仅供参考

微内核架构(Microkernel Architecture),也被称为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品(原文为 product-based,指存在多个版本、需要下载安装才能使用,与 web-based 相对应)的应用。例如 Eclipse 这类 IDE 软件、UNIX 这类操作系统、淘宝 App 这类客户端软件等,也有一些企业将自己的业务系统设计成微内核的架构,例如保险公司的保险核算逻辑系统,不同的保险品种可以将逻辑封装成插件。
今天我将为你详细介绍常见的微内核架构及其实现

基本架构

微内核架构包含两类组件:核心系统(core system)和插件模块(plug-in modules)。核心系统负责和具体业务功能无关的通用功能,例如模块加载、模块间通信等;插件模块负责实现具体的业务逻辑,例如专栏前面经常提到的“学生信息管理”系统中的“手机号注册”功能。
微内核的基本架构示意图如下:
上面这张图中核心系统 Core System 功能比较稳定,不会因为业务功能扩展而不断修改,插件模块可以根据业务功能的需要不断地扩展。微内核的架构本质就是将变化部分封装在插件里面,从而达到快速灵活扩展的目的,而又不影响整体系统的稳定。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

微内核架构是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品的应用。该架构包含核心系统和插件模块两类组件,核心系统负责通用功能,而插件模块负责实现具体的业务逻辑。设计关键点包括插件管理、插件连接和插件通信。OSGi是一种常见的微内核架构实现,提供了模块层、生命周期层和服务层,用于插件管理、连接和通信。该架构具有动态化、热插拔、高可复用性、高效性等优点,适用于各种应用环境。 规则引擎是微内核架构的一种具体实现,通过执行引擎解析配置好的业务流,执行其中的条件和规则,从而支持业务的灵活多变。规则引擎在计费、保险、促销等业务领域应用广泛,能够灵活应对各种需求。规则引擎的基本架构包括插件管理、插件连接和插件通信,与微内核架构的设计关键点相对应。 最常用的规则引擎是开源的JBoss Drools,它具有活跃的社区支持、快速的执行速度以及与Java Rule Engine API兼容等优点。然而,规则语言相对复杂,需要封装成可视化操作以降低学习和理解成本,使其更适合普通业务人员使用。 总的来说,微内核架构及其具体实现规则引擎在实现插件管理、连接和通信方面具有显著优势,能够提高系统的灵活性和可扩展性,适用于各种业务环境。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学架构》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(52)

  • 最新
  • 精选
  • 性能
    突然发现我们用了很久的框架,是微内核架构

    作者回复: 惊不惊喜,意不意外,醍醐灌顶😄

    2018-08-01
    39
  • Boh
    请教老师一个问题,我们目前使用的规则引擎就是这种架构,不过目前存在一个比较头疼的问题,就是对内开放了一个引擎调用接口,可是由于规则非常多,所以接口的请求参数和响应参数是动态的,所以接口调用传参比较头疼。目前我们的做法是将规则根据业务整合成起来,然后将每个业务的输入参数输出参数写入配置表,调用方先根据业务类型读取配置表查询输入输出参数的定义和类型,然后调用方自己生成这份数据调用接口,这样导致接入很不友好同时每次变动改动的地方非常多,而且配置表也越来越臃肿,请问老师这种情况有什么比较好的方案吗

    作者回复: 调用方自己管理各自的配置,不要由规则引擎来管理

    2019-07-28
    15
  • xiao皮孩。。
    作者对规则引擎情有独钟啊

    作者回复: 业务需要,不是我情有独钟😂

    2019-04-04
    14
  • 小喵喵
    1 规则引擎,我简单的理解为开发人员把规则提前写到数据库,这个是基础数据,然后用户选择规则,具体选择了那些规则可以通过外键关联。 2 那么多规则,就比如促销的例子,用策略模式实现是否更妥当?

    作者回复: 纯代码实现可以用策略模式,但每次新来一种促销都要写代码,虽然代码写的少,但还是要测试部署

    2018-07-22
    13
  • 醉爱星巴克
    想问问流程引擎算不算规则引擎的一种呢?

    作者回复: 流程引擎应该是粗粒度的规则引擎

    2018-07-22
    2
    12
  • 奋斗心
    那能不能说规则引擎用了策略模式

    作者回复: 你可以理解为道理是相通的,但不要这么等同,规则引擎是面向功能的一个架构设计模式,策略模式是一个面向对象的类设计模式

    2018-09-28
    9
  • 无聊夫斯基
    微内核我还真没接触过,又get到灵活的方案

    作者回复: 银行,保险,电商用的比较多

    2018-09-14
    2
    9
  • Geek_b6e6bc
    你好 老师。读了这节感觉收益很多,尤其是加深对spring的认识,有点体会,想到了其他的 mysql是不是也是个微内核架构 server层是公用核心部分,存储引擎层属于插件,可以替换, 还有dubbo框架也算是个微内核架构

    作者回复: MySQL不能算微内核,MySQL只是存储引擎做成了插件,微内核的内核一定要“微”,只负责插件管理和插件通信等基础功能,而MySQL的server层是核心功能,包括SQL引擎、查询优化、binlog等

    2021-05-15
    6
  • 飘宝
    李老师,我已经找到了基于产品这种说法的基本出处了,是在Mark Richards的软件架构模式中描述的。其中也对比了几种常见的架构,写的还是很实用的。 我也买了您的从零开始学架构的书,是一本非常适合反复翻阅的书。

    作者回复: 谢谢,加油😊

    2019-04-23
    6
  • 汉斯·冯·拉特
    老师,能不能写个基于微内核的代码例子在github上,之前也听过微内核,但是到目前为止,接触到的都是分层结构的架构

    作者回复: 你可以对照Drools的文档写个促销的方案

    2018-07-25
    5
收起评论
显示
设置
留言
52
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部