Linkis v1.3源码分析

发布时间 2023-05-30 15:32:29作者: 田野与天
 
首先找到单机安装linkis的教程,可以看到第一次先执行install.sh
 
我们就从这个install.sh作为突破口,看看安装的时候,做了什么?
 
 
 
看到install.sh的前面就是设置了一些变量和环境检测,然后就执行了common.sh了,所以先暂时暂停到install.sh的48行,先去看一下common.sh这个脚本做了什么?
 
 
 
分析完成了common.sh,我们接着回到install.sh,因为common.sh其实并没有执行什么关键的命令,只是定义了几个函数,方便install.sh可以直接调用。
 
 
 
 
 

 
 
到此处,安装脚本的解读完毕。
接下来看看启动脚本。
 
 
可以看到启动的脚本是linkis-start-all.sh脚本,接下来我们分析一下这个linkis-start-all.sh脚本在启动的工程中分别启动了哪些类?
 
 
 
可以看到,总共启动了6个类,顺序如下:
1:mg-eureka
2:mg-gateway
3:ps-publicservice
4:cg-linkismanager
5:cg-entrance
6:cg-engineconnmanager
 
然后我们需要找到这6个类具体的类名称是啥。这个去linkis-daemon.sh里去找。
核心的映射关系就是这里了。
 
然后我们把上面的类映射到执行脚本里去:如下图所示:
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
 
 
可以找到核心的启动类就是  org.apache.linkis.eureka.SpringCloudEurekaApplication

 

接着看第二个文件:sbin/ext/linkis-mg-gateway
可以找到核心的启动类就是org.apache.linkis.gateway.springcloud.LinkisGatewayApplication

 

接着看第三个文件:sbin/ext/linkis-ps-publicservice
可以找到核心的启动类就是org.apache.linkis.filesystem.LinkisPublicServiceApp

 

接着看第四个文件:sbin/ext/linkis-cg-linkismanager
可以找到核心的启动类就是org.apache.linkis.manager.am.LinkisManagerApplication

 

接着看第五个文件:sbin/ext/linkis-cg-entrance
可以找到核心的启动类就是 org.apache.linkis.entrance.LinkisEntranceApplication

 

接着看第六个文件:sbin/ext/linkis-cg-engineconnmanager
 
可以找到核心的启动类就是 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