• Props 和 IActorRef 3


    在Actor模式中我们使用IActorRef通过ActorSystem来发送消息数据。这么做有两个理由

    1.ActorSystem会在消息中封装一些元数据(metadata),这些数据我们可以通过上下文来获取。

    2.我们可以让实例Actor位置透明,也就是说我们针对的某个Actor只是一个逻辑Actor,可以在本地也可能在远程。系统为我们做了许多封装,跟踪工作。在分布式环境下这是不可或缺的。

    那我们如何获取IActorRef接口呢?

    既然我们依仗ActorSystem那么接口也是通过System实例来获得。特别需要注意的是,所以的Actor实例都应该通过ActorSystem或者Context来构建,否则就失去了使用该框架的意义,也会混淆系统的使用。另外在构建时最好给出Actor的Name可以方便之后的引用。

    IActorRef myFirstActor = MyActorSystem.ActorOf(Props.Create(() => new MyActorClass()), "myFirstActor")

     那什么是Props呢?

    Props是一个配置类,使用其中的参数就可以构建对应的Actor。我想是不是可以理解成一个工厂类,用来生成对应的对象。不过也是需要通过ActorSystem来进行的。在Remote和Cluster中Props是构建Actor不可或缺的组件。

    还有一点需要注意的是也不应使用new来构建Prop,而要使用Prop提供的Create接口。

  • 相关阅读:
    Python Revisited Day 13 (正则表达式)
    Python Revisited Day 06 (面向对象程序设计)
    Python Revisited (变量)
    Python Revisited Day 05(模块)
    Python Revisited Day 04 (控制结构与函数)
    Python Revisited Day 03 (组合数据类型)
    Numpy
    Python Revisited Day 01
    Python3使用openpyxl读写Excel文件
    Python3操作YAML文件
  • 原文地址:https://www.cnblogs.com/weloveamber/p/6937620.html
Copyright © 2020-2023  润新知