ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

thingsboard 之 actor模型

2022-07-13 16:36:11  阅读:198  来源: 互联网

标签:-- 模型 Actor 发送 actor thingsboard 消息


actor模型介绍

介绍

   计算机科学中的actor模型是一个并发计算的数学模型,它将actors视为并发计算的通用原语:actor可以做出本地决策,来作为其接收到的消息的响应,创建更多actors,发送更多消息,并确定如何响应接收到的下一条消息。 Actor模型采用的哲学是一切都是Actor。这与一些面向对象编程语言应用的“任何事物都是一个对象”的哲学类似。

组成

  • 状态
   指actor本身的属性信息,state只能被actor自己操作,不能被其他actor共享和操作,有效的避免加锁和数据竞争
  • 行为

   指actor处理逻辑,如果通过行为来操作自身state

  • 邮箱

   指actor存储消息的fifo队列,actor与actor发送消息,消息只能发送到邮箱,等待拥有邮箱的actor 去处理,这个过程是异步的。简单来说,有时间才处理,等我把前面任务先完成

原则

  • 所有的Actor状态是本地的,外部是无法访问的。
  • Actor必须通过消息传递进行通信
  • 一个Actor可以响应消息、退出新Actor、改变内部状态、将消息发送到一个或多个Actor
  • Actor可能会堵塞自己但Actor不应该堵塞自己运行的线程

thingsboard actor模型和一般actor模型对比

入口类:DefaultActorService

与经典的Actor模型对应关系为:

  • TbActor-->Actor
  • Dispatcher --> Behavior
  • TbActorRef --> mailBox,TbActorRef对应的实现类为TbActorMailbox

代码走读

贴图:

 

 

 

说明:@PostConstruct  初始化完成,属性注入之后执行

  •  配置类生成 TbActorSystemSettings
  • actor系统生成 DefaultTbActorSystem
  •  

     看下actor系统的功能:创建actor,发送消息,广播消息

  •  

     @EventListener(ApplicationReadyEvent.class):初始化完成之后的动作

  • 发送系统初始化信息给appActor
  •  

     

 

标签:--,模型,Actor,发送,actor,thingsboard,消息
来源: https://www.cnblogs.com/zslb/p/16474318.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有