微内核是内核的一种精简形式。将通常与内核集成在一起的系统服务层被分离出来,变成可以根据需求加入选件,这样就可提供更好的可扩展性和更加有效的应用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改变整个操作系统。
在我们常见的应用程序中,有哪些采用了微内核的思想去开发呢。
开发者常用的工具Idea,提供了各种丰富的插件供开发者使用,这些插件可以由其他第三方厂商甚至普通开发者自行定义然后集成到程序中。
分布式服务框架dubbo,采用微内核的架构方式可以方便开发者在其框架基础之上扩展各种协议,序列化方式,注册方式,使得整个框架扩展起来变得十分灵活。
分布式任务调度系统,通过上传一个jar包,可以让调度执行器去触发实际任务的执行。
本博客围绕微内核设计的专题,讲述如何去设计这些支持可扩展的平台。本人也是边学边写,若有不足之处欢迎批评指正。
SPI与API
ServiceLoader详解
自定义扩展点加载
扩展点加载器如何与Spring容器结合
类加载器详解
如何不重启热加载插件
做个任务调度平台
源码链接: (https://github.com/YaoLang/microkernel-study)