dremio DACModule 模块加载简单说明

dremio DACModule 主要是模块加载初始化以及组合,是一个比较重要的模式,同时也支持基于配置进行加载(有点很多了,后边简单介绍)

加载机制

  • 支持配置加载
    可以通过dremio 运行配置文件添加dremio.daemon.module.class 支持
 
services: {
  coordinator.enabled: true,
  coordinator.master.enabled: true,
  executor.enabled: false
}
dremio:{
daemon.module.class: "com.dremio.dac.daemon.DACDaemonModule" // 默认实现可以扩展自己的
}
  • 通过动态类创建模式进行处理
    代码处理DremioDaemon 入口中
 
public static void main(String[] args) throws Exception {
    try (TimedBlock b = Timer.time("main")) {
      final DACConfig config = DACConfig.newConfig();
      final SabotConfig sabotConfig = config.getConfig().getSabotConfig();
      final ScanResult classPathScan = ClassPathScanner.fromPrescan(sabotConfig);
 
      if (config.isMaster) {
        // Try autoupgrade before starting daemon
        AutoUpgrade autoUpgrade = new AutoUpgrade(config, classPathScan);
        autoUpgrade.run(false);
      }
     // 基于sabotConfig 提供的类加载以及创建机制加载社区的模块DACDaemonModule,此处就很强大了,可以扩展自己的DACDaemonModule,实现一些其他功能
      final DACModule module = sabotConfig.getInstance(DAEMON_MODULE_CLASS, DACModule.class, DACDaemonModule.class);
      try (final DACDaemon daemon = DACDaemon.newDremioDaemon(config, classPathScan, module)) {
        daemon.init();
        daemon.closeOnJVMShutDown();
        daemon.awaitClose();
      }
    } catch (final Throwable ex) {
      ProcessExit.exit(ex, "Failure while starting services.", 4);
    }
  }
}

说明

以上是一个简单的关于dremio DACModule 模块加载的说明,我们可以自己扩展实现不少强大的功能

参考资料

dac/daemon/src/main/java/com/dremio/dac/daemon/DremioDaemon.java
dac/backend/src/main/java/com/dremio/dac/daemon/DACModule.java
dac/backend/src/main/java/com/dremio/dac/daemon/DACDaemonModule.java

posted on   荣锋亮  阅读(31)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-01-19 Full Schema Stitching with Apollo Server
2019-01-19 GraphQL Gateway Architectures
2019-01-19 Modularizing your graphQL schemas
2018-01-19 sailsjs 不用写代码就能生成rest api 代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示