Skip to content

Latest commit

 

History

History
79 lines (59 loc) · 2.31 KB

rule-engine.md

File metadata and controls

79 lines (59 loc) · 2.31 KB

环境准备

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

准备

使用Idea打开源码工程。

工程结构

双击rule-engine文件夹。

分析

通过名称可以得知,该工程与规则引擎相关

pom.xml基础分析

<modules>
  <module>rule-engine-api</module>
  <module>rule-engine-components</module>
</modules>

rule-engine包含rule-engine-apirule-engine-components子工程。

  • rule-engine-api

    pom.xml基础分析

    <dependencies>
      <dependency>
      <groupId>org.thingsboard.common</groupId>
      <artifactId>message</artifactId>
      <scope>provided</scope>
      </dependency>
      <dependency>
      <groupId>org.thingsboard.common</groupId>
      <artifactId>dao-api</artifactId>
      <scope>provided</scope>
      </dependency>
      ......
     </dependencies>       
    

    内部依赖:messagedao-apiutil,外部核心依赖:netty-all(网络框架)、guava(Google基础工具类库)、java-driver-core(Cassandra驱动)、spring-data-redis(Redis客户端)、javax.mail(邮件客户端)、logbackjunit

  • rule-engine-components

    pom.xml基础分析

    <dependencies>
      <dependency>
      <groupId>org.thingsboard.common</groupId>
      <artifactId>util</artifactId>
      <scope>provided</scope>
      </dependency>
      <dependency>
      <groupId>org.thingsboard</groupId>
      <artifactId>dao</artifactId>
      <scope>provided</scope>
      </dependency>
      ......
     </dependencies>   
    

    内部依赖:transport-apidaoutilrule-engine-apinetty-mqtt,外部核心依赖:guava(Google基础工具类库)、gson(Json序列化与反序列化)、kafka-clients(kafka客户端)、aws-java-sdk-sqs(aws sqs客户端)、google-cloud-pubsub(google pubsub客户端)、amqp-client(amqp客户端)、proto-google-common-protos(谷歌通用协议)、javax.mail(邮件客户端)、logbackjunit

结论

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

  • 该子工程与规则引擎相关
  • 规则链支持多种消息队列、邮件等。

TIPS

  • 规则引擎是Thingsboard核心部分,用于实时数据流处理等,文档见规则引擎架构