Apache开源项目 Linkis源码分析01--启动脚本解读篇

272 阅读2分钟

image.png 首先找到单机安装linkis的教程,可以看到第一次先执行install.sh

我们就从这个install.sh作为突破口,看看安装的时候,做了什么?

image.png 看到install.sh的前面就是设置了一些变量和环境检测,然后就执行了common.sh了,所以先暂时暂停到install.sh的48行,先去看一下common.sh这个脚本做了什么?

image.png

image.png 分析完成了common.sh,我们接着回到install.sh,因为common.sh其实并没有执行什么关键的命令,只是定义了几个函数,方便install.sh可以直接调用。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png 到此处,安装脚本的解读完毕。

接下来看看启动脚本。

image.png 可以看到启动的脚本是linkis-start-all.sh脚本,接下来我们分析一下这个linkis-start-all.sh脚本在启动的工程中分别启动了哪些类?

image.png

image.png 可以看到,总共启动了6个类,顺序如下: 1:mg-eureka 2:mg-gateway 3: ps-publicservice 4: cg-linkismanager 5: cg-entrance 6: cg-engineconnmanager 然后我们需要找到这6个类具体的类名称是啥。这个去linkis-daemon.sh里去找。

image.png 核心的映射关系就是这里了。

然后我们把上面的类映射到执行脚本里去:如下图所示:

image.png

  1. mg-eureka------> sbin/ext/linkis-mg-eureka
  2. mg-gateway ---------> sbin/ext/linkis- mg-gateway
  3. ps-publicservice --------> sbin/ext/linkis- ps-publicservice
  4. cg-linkismanager ----------> sbin/ext/linkis- cg-linkismanager
  5. cg-entrance -------------> sbin/ext/linkis- cg-entrance
  6. cg-engineconnmanager ------> sbin/ext/linkis- cg-engineconnmanager

所以接下来就很明白了,就是去看下面6个启动文件:

  • sbin/ext/linkis-mg-eureka
  • sbin/ext/linkis-mg-gateway
  • sbin/ext/linkis-ps-publicservice
  • sbin/ext/linkis-cg-linkismanager
  • sbin/ext/linkis-cg-entrance
  • sbin/ext/linkis-cg-engineconnmanager

我们先看看第一个文件:sbin/ext/linkis-mg-eureka

image.png 可以找到核心的启动类就是  org.apache.linkis.eureka.SpringCloudEurekaApplication


接着看第二个文件: sbin/ext/linkis-mg-gateway

image.png 可以找到核心的启动类就是 org.apache.linkis.gateway.springcloud.LinkisGatewayApplication


接着看第三个文件: sbin/ext/ linkis- ps-publicservice

image.png 可以找到核心的启动类就是 org.apache.linkis.filesystem.LinkisPublicServiceApp


接着看第四个文件: sbin/ext/ linkis- cg-linkismanager

image.png 可以找到核心的启动类就是 org.apache.linkis.manager.am.LinkisManagerApplication


接着看第五个文件: sbin/ext/ linkis- cg-entrance

image.png 可以找到核心的启动类就是 org.apache.linkis.entrance.LinkisEntranceApplication


接着看第六个文件: sbin/ext/ linkis- cg-engineconnmanager

image.png 可以找到核心的启动类就是 org.apache.linkis.ecm.server.LinkisECMApplication


所以总结一下就是,按照顺序依次启动如下6个类:

  1. org.apache.linkis.eureka.SpringCloudEurekaApplication
  2. org.apache.linkis.gateway.springcloud.LinkisGatewayApplication
  3. org.apache.linkis.filesystem.LinkisPublicServiceApp
  4. org.apache.linkis.manager.am.LinkisManagerApplication
  5. org.apache.linkis.entrance.LinkisEntranceApplication
  6. org.apache.linkis.ecm.server.LinkisECMApplication

至此,我们就分析完成了Linkis整个启动的脚本,大家抓紧先把上面的几个进程先启动起来吧。下一篇,我们将要介绍一下如何用调用Linkis的Restful接口来提交一个请求给Linkis,并跟踪Linkis内部脚本的执行流程。