要创建Actor,可以调用ActorSystem.actorOf(..),它创建的actor在guardian actor之下,接着可以调用ActorContext的actorOf(…) 在刚才创建的Actor内生成一个actor树。这些方法会返回新创建的actor的引用,每一个actor都可以通过访问ActorContext来获得自己(self),子Actor(children,child)和父actor(parent)。 要查找Actor Re...
object ActorSystemApp extends App { val system = ActorSystem("MyActorSystem") val myActor = system.actorOf(Props[MyActor], "myActor") myActor ! "hello" } 容错性策略 1. 监督策略 定义Actor的监督策略,决定在子Actor失败时是重启、停止还是重置。 class SupervisorActor extends Actor { m.gleehub...
val supervisor = system.actorOf(Props[SupervisorActor], "supervisor") supervisor ! "Fail" // 触发异常并观察监督策略 结论 Scala的Actor模型为并发编程提供了一种新的范式。通过Akka框架,Scala开发者可以利用Actor模型构建高性能、高可靠性的并发应用程序。Actor模型的无共享状态和消息传递机制简化了并发编程,提高...
在上面的示例中,首先定义了一个简单的Actor类MyActor,其中定义了一个receive方法来处理接收到的消息。然后创建一个ActorSystem来管理Actor实例,通过Props[MyActor]来创建MyActor实例。最后通过!操作符来发送消息给Actor,并最终使用system.terminate()方法来关闭ActorSystem。 需要注意的是,使用Actor模型时需要引入Akka库的...
配置线程池的任务最好代理给Akka来做,只要在application.conf中配置,并由ActorSystem[Java,Scala] 实例化即可。 你不应该担心的事 一个actor系统管理它所配置使用的资源,运行它所包含的actor。 在一个系统中可能有上百万个actor,不用担心,内存一定是够用的,因为每个actor实例仅占差不多300个字节。自然地,一个大系...
1、创建一个 ActorSystem; 2、用创建好的 ActorSystem 来创建一个通往 Teacher Actor 的代理 (ActorRef) 3、将 message 发送到这个代理中。 17.2.2 创建一个 ActorSystem ActorSystem 是进入 Actor 世界的切入点,通过 ActorSystem 你可以创建 和停止 Actors,甚至关掉整个 Actor 环境!
在Scala中,可以通过继承akka.actor.Actor trait来创建一个新的Actor,并实现其接收消息和处理消息的逻辑。然后可以使用ActorSystem来启动Actor,并向其发送消息。下面是一个简单的示例: 在这个示例中,首先创建了一个MyActor类,它继承自Actor trait,并实现了receive方法来处理接收到的消息。然后使用Props对象创建了一个My...
Scala 深入浅出实战经典 第96讲:Akka第一个案例动手实战main方法实现中ActorSystem等代码详解,actorSystem建MasterActor。akka的actor是树形结构,用ActorSystem可以用来查找分布在多台机器上的actor,也能继承一些配置到子actor。masterActor是消息的接收端和转发端。act
在Scala中,可以通过继承akka.actor.Actor trait来创建一个新的Actor,并实现其接收消息和处理消息的逻辑。然后可以使用ActorSystem来启动Actor,并向其发送消息。下面是一个简单的示例: 在这个示例中,首先创建了一个MyActor类,它继承自Actor trait,并实现了receive方法来处理接收到的消息。然后使用Props对象创建了一个My...
implicit val system = ActorSystem()implicit val materializer = ActorMaterializer()implicit val executionContext = system.dispatcher def fetchData(url: String): Future[HttpResponse] = { Http().singleRequest(HttpRequest(uri = url))} def main(args: Array[String]): Unit = { val url = "https:...