dremio UserService 简单说明

以前是简单说明过dremio 的UserService ,dremio 实际上支持内部以及外部用户的玩法

类图

可以看到,包含了simple 以及executor 两个,同时实现了UserServiceEvents 支持发布订阅能力的接口(订阅是25.0 版本的)
executor 的实现实际上是为空的,核心是方便执行节点bind UserService,实际内部处理可以参考源码,实际存储是在kv 中,当然
我们可以自己扩展下,存储到其他地方

服务的注册以及启动

注册实际就是dremio的ioc 容器了, 具体会做一些判断
DACDaemonModule 中的setupUserService,会基于是否是协调节点注册不同的实现

protected boolean setupUserService(
    final SingletonRegistry registry,
    final DremioConfig config,
    final Provider<SabotContext> sabotContext,
    boolean isMaster,
    boolean isCoordinator) {
  if (!isCoordinator) {
    registry.bind(UserService.class, new ExecutorUserService());
    return false;
  }
 
  final String authType = config.getString(WEB_AUTH_TYPE);
 # 此处目前是硬编码判断的,社区版只有internal 的
  if ("internal".equals(authType)) {
    final SimpleUserService simpleUserService =
        new SimpleUserService(registry.provider(LegacyKVStoreProvider.class), isMaster);
    registry.bindProvider(UserService.class, () -> simpleUserService);
    registry.bindSelf(simpleUserService);
    logger.info("Internal user/group service is configured.");
    return true;
  }
 
  logger.error(
      "Unknown value '{}' set for {}. Accepted values are ['internal', 'ldap']",
      authType,
      WEB_AUTH_TYPE);
  throw new RuntimeException(
      String.format("Unknown auth type '%s' set in config path '%s'", authType, WEB_AUTH_TYPE));
}

说明

以上只简单说明了用户部分(社区版),后边关于auth部分的说明下

参考资料

services/users/src/main/java/com/dremio/service/users/UserService.java
dac/backend/src/main/java/com/dremio/dac/daemon/DACDaemonModule.java
services/users/src/main/java/com/dremio/service/users/SimpleUserService.java

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

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-05-05 not-perf cpu采样profiler工具
2023-05-05 kysely typescript 类型安全的sql 查询构建包
2023-05-05 LD_PRELOAD 参考使用
2022-05-05 graalvm typescript types 编写定义参考说明
2022-05-05 iasql-engine 基础设施即数据
2021-05-05 cube.js 预聚合检查
2021-05-05 cube.js 集成cubestore 时间格式问题的一些说明

导航

< 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
点击右上角即可分享
微信分享提示