微内核架构

第85篇

极客时间《从0开始学架构》课程笔记。

定义

微内核架构(Microkernel Architecture),也被称为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品的应用。

基本架构

  • 微内核架构包含两类组件:核心系统(core system)和插件模块(plug-in modules)。
  • 核心系统负责和具体业务功能无关的通用功能,例如模块加载、模块间通信等;插件模块负责实现具体的业务逻辑。
  • 核心系统功能比较稳定,不会因为业务功能扩展而不断修改,插件模块可以根据业务功能的需要不断地扩展。
  • 微内核的架构本质就是将变化部分封装在插件里面,从而达到快速灵活扩展的目的,而又不影响整体系统的稳定。
微内核基本架构

设计关键点

  1. 插件管理
  • 插件注册机制:核心系统需要知道哪些插件可用、如何加载、什么时候加载
  • 插件注册表:包含每个插件模块的信息,如名字、位置、加载时机等, 可以是配置文件、代码或数据库
  1. 插件连接
  • 连接规范:明确插件如何连接到核心系统,由核心系统制定,插件按照规范实现
  • 常见连接机制:OSGi、消息模式、依赖注入、分布式协议
  1. 插件通信
  • 插件间通信:多个插件协作时需要进行通信,通信必须通过核心系统提供的插件通信机制实现,就像计算机的主板总线

OSGi架构

  • OSGi全称Open Services Gateway initiative,一般都是指 OSGi 的规范
  • Eclipse 采用 OSGi 标准后,OSGi 成为了首选的插件化标准
  • OSGi 是一个插件化的标准,而不是一个可运行的框架,Eclipse 采用的 OSGi 框架称为 Equinox,类似的实现还有 Apache 的 Felix、Spring 的 Spring DM
OSGi框架的逻辑架构图
  • 模块层(Module层):实现插件管理功能。OSGi 中,插件被称为 Bundle,每个 Bundle 是一个 Java 的 JAR 文件,每个 Bundle 里面都包含一个元数据文件 MANIFEST.MF,这个文件包含了 Bundle 的基本信息
  • 生命周期层(Lifecycle 层):实现插件连接功能,提供了执行时模块管理、模块对底层 OSGi 框架的访问。生命周期层精确地定义了 Bundle 生命周期的操作(安装、更新、启动、停止、卸载),Bundle 必须按照规范实现各个操作
  • 服务层(Service 层):实现插件通信的功能。服务注册功能用于各个插件将自己能提供的服务注册到 OSGi 核心的服务注册中心,服务注册指实现插件间通信的机制

规则引擎架构

  • 规则引擎从结构上来看也属于微内核架构的一种具体实现
  • 执行引擎可以看作是微内核,执行引擎解析配置好的业务流,执行其中的条件和规则
  • 规则引擎能够很灵活的应对各种促销规则、计费规则的实现以及组合需求
  • 规则引擎的特点:可扩展、易理解、高效率
规则引擎基本架构
  • 开发人员将业务功能分解提炼为多个规则,将规则保存在规则库中。
  • 业务人员根据业务需要,通过将规则排列组合,配置成业务流程,保存在业务库中。
  • 规则引擎执行业务流程实现业务功能。
  • 插件管理:规则引擎中的规则就是微内核架构的插件,引擎就是微内核架构的内核
  • 插件连接:规则引擎的插件连接实现机制其实就是规则语言
  • 插件通信:规则引擎的规则之间进行通信的方式就是数据流和事件流,规则只需要输出数据或者事件,由引擎将数据或者事件传递到下一个规则
  • 目前最常用的规则引擎是开源的 JBoss Drools,采用 Java 语言编写,基于 Rete 算法
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,907评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,546评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,705评论 0 238
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,624评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,940评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,371评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,672评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,396评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,069评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,350评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,876评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,243评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,847评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,004评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,755评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,378评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,266评论 2 259

推荐阅读更多精彩内容