规则引擎解析
描述规则引擎是Thingsboard的核心部分,基于Actor编程模型,类似事件驱动;每个actor都有自己的消息队列(mailBox)保存接收到的消息actor可以创建actoractor可以将消息转发给其他actor分析Actor模型实现系统中与Actor模型相关类都在工程common/actor下,几个核心类说明如下:TbActorSystemActor系统接口,Actor系统类实现该接口T
描述
规则引擎是Thingsboard的核心部分,基于Actor编程模型,类似事件驱动;
每个actor都有自己的消息队列(mailBox)保存接收到的消息
actor可以创建actor
actor可以将消息转发给其他actor

分析
Actor模型实现
系统中与Actor模型相关类都在工程common/actor下,几个核心类说明如下:
TbActorSystem Actor系统接口,Actor系统类实现该接口
TbActor Actor接口,所有Actor需直接或间接实现该接口
TbActorCreator Actor创建接口,所有Actor创建器直接或间接实现该接口
TbActorRef Actor句柄接口,使用TbActorCreator创建Actor后返回此句柄,通常指向Actor的邮箱。
TbActorCtx Actor上下文接口,继承TbActorRef接口。
AbstractTbActor 抽象Actor,实现TbActor接口。
DefaultTbActorSystem Actor系统,用于Dispatcher的创建删除、Actor的创建查找和Actor之间消息传递等。
Dispatcher 调度器,用于调度Actor的创建或消息分发。
TbActorMailbox 邮箱,实现TbActorCtx接口,指向某个actor,同时存储消息到队列并使用调
原创不易,完成人机校验,阅读全文
相关推荐
JAVA游戏【更好的理解ThingsBoard规则引擎的】深入理解Akka Actor模型THINGSBOARDThingsBoard源码解析-数据订阅与规则链数据处理工作小总结【思路】使用Java手写入参是 Json对象,根据json对象中type值不同,选择不同规则链的自定义规则节点的支持过滤、支持分支的规则引擎案例DROOLS开源规则引擎 Drools 学习笔记 之 -- 1 cannot be cast to org.drools.compiler.kie.builder.impl.InternalKieModuleTHINGSBOARDthingsboard的规则引擎。项目启动怎么加载的?数据过来了,怎么运行的?相关代码入口分别在哪里?DROOLSdrools规则语法(一)工作小总结thymeleaf语法规则:经验分享初级推广者的结算规则