Skip to content

Latest commit

 

History

History
135 lines (105 loc) · 3.68 KB

msa.md

File metadata and controls

135 lines (105 loc) · 3.68 KB

环境准备

  • release-3.2分支源码
  • IDE Idea或Eclipse,本文使用Idea

准备

使用Idea打开源码工程。

工程结构

双击msa文件夹。

分析

pom.xml基础分析

<modules>
  <module>tb</module>
  <module>js-executor</module>
  <module>web-ui</module>
  <module>tb-node</module>
  <module>transport</module>
  <module>black-box-tests</module>
</modules>

msa包含tbjs-executorweb-uitb-nodetransportblack-box-tests子工程。

  • black-box-tests(黑盒测试) pom.xml基础分析

    <dependencies>
      <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>testcontainers</artifactId>
      <version>${testcontainers.version}</version>
      </dependency>
      <dependency>
      <groupId>org.zeroturnaround</groupId>
      <artifactId>zt-exec</artifactId>
      <version>${zeroturnaround.version}</version>
      </dependency>
      ......
    </dependencies>
    

    内部依赖:netty-mqtttoolsrest-client,外部核心依赖:testcontainers(容器测试)、zt-exec(命令执行)、java-WebSocket(websocket支持)、httpclient(http客户端)、guava(Google工具类)、gson(json序列化与反序列化)、logback

  • js-executor(js脚本执行器) pom.xml基础分析

    <dependencies>
      <dependency>
      <groupId>com.sun.winsw</groupId>
      <artifactId>winsw</artifactId>
      <classifier>bin</classifier>
      <type>exe</type>
      <scope>provided</scope>
      </dependency>
    </dependencies>
    .......
    

    外部依赖:winsw(windows服务打包),使用插件下载nodejs和yarn(nodejs包管理器),同时提供插件进行相关镜像的编译、标记和推送,可以继续查看yarn.lock分析该工程依赖,暂不展开。

  • tb pom.xml基础分析

    <dependency>
      <groupId>org.thingsboard</groupId>
      <artifactId>application</artifactId>
      <version>${project.version}</version>
      <classifier>deb</classifier>
      <type>deb</type>
      <scope>provided</scope>
    </dependency>
    

    内部依赖:applicationdeb包,通过插件进行和此包相关镜像的编译、标记和推送。

  • tb-node 与tb子工程类似

  • transport pom.xml基础分析

    <modules>
      <module>mqtt</module>
      <module>http</module>
      <module>coap</module>
    </modules>
    

    transport包含mqtthttpcoap3个子工程

  • transport/coap pom.xml基础分析

    <dependencies>
      <dependency>
      <groupId>org.thingsboard.transport</groupId>
      <artifactId>coap</artifactId>
      <version>${project.version}</version>
      <classifier>deb</classifier>
      <type>deb</type>
      <scope>provided</scope>
      </dependency>
    </dependencies>
    

    内部依赖:coapdeb包,通过插件进行和此包相关镜像的编译、标记和推送。

  • transport/http 与transport/coap类似,内部依赖:httpdeb包,通过插件进行和此包相关镜像的编译、标记和推送。

  • transport/mqtt 与transport/coap类似,内部依赖:mqttdeb包,通过插件进行和此包相关镜像的编译、标记和推送。

  • web-ui 与js-executor子工程类似

结论

通过分析,可以得出以下结论:

  • msa子工程主要包含一些与Docker镜像编译、标记和推送的过程,官方提供微服务集群容器化部署,应该与这个子工程相关。

TIPS

  • msa全名含义:MicroServices Architecture,关于此架构的官方文档msa
  • 官方文档如何编译镜像