Skip to content

微内核 插件机制

quhongwei edited this page Mar 28, 2018 · 1 revision

组件以微内核+插件机制设计, 微内核即组件实现一些常用核心功能,扩展功能用插件以spi接口形式开放给用户。以存储操作为例,在文件的读写,分片,合并,校验或者排序过程中都需要针对具体存储进行操作,组件只依赖接口,具体实现由参数传递的存储类型加载。

插件结构

插件加载

  1. ExtensionLoader 是加载插件的核心部件,会扫描classpath:META-INF/rdf-file/services/下所有文件,插件实现后配置放到这个目录下
  2. SPI模块在com.alipay.rdf.file.spi包下都可以通过插件扩展
  3. spi接口名作为服务扩展插件的文件名,文件中配置key是扩展实现名字,value是扩展实现类
    如:内置行分割器实现,文件名是:com.alipay.rdf.file.spi.RdfFileRowSplitSpi, 文件内容如下
     rowSplitBySeparator=com.alipay.rdf.file.split.RowSplitBySeparator
     rowSplitByFixedlLength=com.alipay.rdf.file.split.RowSplitByFixedlLength