我以前简单说明过dremio 依赖的一些社区版的包(木有开源的)以下做一个简单的总结说明
社区版模式的开发模式
- 基于独立包进行扩展
- 扩展使用了配置动态加载或者直接引用模式,比如scheduler 就是基于class 加载机制,部分查询计划的扩展(sabot kernel)使用了包的模式(放到包中)
- 部分社区模块直接依赖开源版本的,然后进行扩展(开源版只开源了实体以及一些简单的公共部分,其他核心都是dremio的),比如elasticsearch,mongo。。。
- 部分社区模块还依赖了社区模块,比如jdbc 插件模块
- 大部分社区模块使用了java 类加载的模式进行扩展,比如同包名,但是独立扩展
参考资料
https://www.cnblogs.com/rongfengliang/p/15957875.html
https://www.cnblogs.com/rongfengliang/p/15961890.html
https://www.cnblogs.com/rongfengliang/p/15957087.html