Scala Akka中RoudnRobinGroup的简单示例

Scala Akka中RoudnRobinGroup的简单示例,scala,akka,Scala,Akka,我在Akka找不到RoundRobingGroup的工作示例(文档中的示例对我没有帮助)。我想把两个参与者绑在一个RoundRobinGroup中,然后用Akka(通过路由器变量)发送简单的消息,但我总是在日志中收到死信 object Main extends App { val system = ActorSystem() val paths = List("w1", "w2") val w1 = system.actorOf(Props[HelloA

我在Akka找不到RoundRobingGroup的工作示例(文档中的示例对我没有帮助)。我想把两个参与者绑在一个RoundRobinGroup中,然后用Akka(通过路由器变量)发送简单的消息,但我总是在日志中收到死信

 object Main extends App { 
      val system = ActorSystem()

      val paths = List("w1", "w2")
      val w1 = system.actorOf(Props[HelloActor], name = "w1")
      val w2 = system.actorOf(Props[HelloActor], name = "w2")
      val router = system.actorOf(new RoundRobinGroup(paths).props(), "shard")

      router ! "hello"
}

我想知道我的错误在哪里。

你能做的就是用HelloActor和Router的两个实例制作一个路由器 并使用RoundRobinRoutingLogic作为路由逻辑。 您可以在此处获得详细信息:


希望我解决了你的问题

它解决了我的问题

   class Master extends Actor {    
          var router = {
            val routees = Vector.fill(2) {
              val mappings = context.actorOf(Props[HelloActor])
              context watch mappings
              ActorRefRoutee(mappings)
            }
            Router(RoundRobinRoutingLogic(), routees)
          }

          def receive = {
            case message: String =>
              router.route(message, sender())
            case Terminated(a) =>
              router = router.removeRoutee(a)
              val r = context.actorOf(Props[HelloActor])
              context watch r
              router = router.addRoutee(r)
          }
        }

        class HelloActor extends Actor {
          override def receive: Receive = {
            case "hello" => println("Another actor said hello")
            case _ => println("Unrecognized message")
          }
        }

        object Main extends App {
          val system = ActorSystem()
          val master = system.actorOf(Props[Master], name = "parent")
          master ! "hello"
        }

谢谢,但我应该在什么地方将
RounRobinRoutingLogic
附加到我的“hello world”应用程序中(也许这是一个愚蠢的问题,但文档中包含了未完成且分散的示例)?请看这个示例,他们已经定义了它,制作路由器并使用RounRobinRoutingLogic。您还可以在配置中定义它。如果这对你有帮助,请投票并接受答案。:)我犯了你告诉我的错误,你能帮我找到错误吗(在下面的帖子里)?你能给我提供错误吗,因为我们没有一整天的时间来查看代码中的错误!请理解我解决了我的问题。你能在“坏地方”(我编辑了上面的帖子)上查一下这个代码吗。