Skip to main content
版本:Next(1.7.0)

公共服务架构

背景

为什么在我们将Linkis作为统一网关或JobServer后,还要为其增加公共增强的能力呢?这个是在我们实际去开发了多个上层应用工具后,发现如在IDE工具里面定义了一个UDF、变量调试通过后,在发布到调度工具的时候,这些UDF和变量又需要重现定义一遍。当依赖的一些jar包、配置文件等发生变化时,也需要修改两个地方。 针对这些类似跨上层应用工具的公共上下文的问题,在我们实现任务统一入口为Linkis后,我们就在想是不是可以由Linkis去提供这个公共增强的能力,提供一些公共可以被多个应用工具去复用的能力。所以在Linkis层设计了一层公共增强服务PES

架构图

架构说明

现在已经提供了以下能力:

  • 提供统一的数据源能力:数据源在Linkis层进行统一定义和管理,应用工具只需要通过数据源名字来进行使用,不再需要去维护对应数据源的连接信息。而且在不同的工具间数据源的含义都是一样的。并提供了相应的数据源的元数据的查询能力。
  • 提供公共的UDF能力:统一UDF、小函数的定义规范和语义,做到一处定义多个工具都可使用。
  • 提供统一上下文的能力:支持任务间传递信息,包括变量、结果集、资源文件的多任务间传递,提供任务间传递上下文的能力。
  • 提供统一物料的能力:提供统一的物料,在多个工具间支持共享访问这些物料,并且物料支持存储多种的文件类型,并支持版本控制。
  • 提供统一配置和变量的能力:提供了统一的配置能力支持模板化的配置不同的引擎参数模版,支持自定义变量、内置常用的系统变量和时间格式变量等。
  • 提供公共错误码的能力:提供统一的错误码能力,对常用计算存储引擎的作物进行分类编码以及知识库的能力,并提供了方便的SDK进行调用。

通过Linkis的公共增强服务,可以打破上层应用工具间的孤岛,做到变量、函数、文件、结果集等上下文的共享,就像下图所暂时的一样,并且大大减少应用工具间的重复开发工作。

详细介绍可以参考