• thingsboard 之 actor模型 1


    actor模型介绍

    介绍

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

    组成

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

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

    • 邮箱

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

    原则

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

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

    入口类:DefaultActorService

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

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

    代码走读

    贴图:

     

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

    •  配置类生成 TbActorSystemSettings
    • actor系统生成 DefaultTbActorSystem
    •  看下actor系统的功能:创建actor,发送消息,广播消息

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

    • 发送系统初始化信息给appActor
  • 相关阅读:
    去除字符串中多余空格
    day02-03 字符编码
    eclipse与myeclipse区别
    xz解压和zip解压
    yum安装
    防火墙
    查看和操作HBA卡
    复制linux虚拟机后网卡不能用的解决方法
    关闭IPv6
    更改root密码
  • 原文地址:https://www.cnblogs.com/zslb/p/16474318.html
Copyright © 2020-2023  润新知