代码之家  ›  专栏  ›  技术社区  ›  jbrown

如何限制特定类型的演员数量?

  •  2
  • jbrown  · 技术社区  · 9 年前

    我已经创建了一个参与者来向聊天服务器发送消息。然而,聊天服务器仅允许每个用户5个连接。如果我锤击scala服务器,我会收到错误消息,因为我的聊天客户端断开了连接。

    那么我如何配置akka XmppSenderActor 我们最多只能使用5个线程?我不想限制actor系统的其余部分,只有这个对象(在路径 /XmppSenderActor/ ).

    我正在尝试此配置,因为我认为它是我需要配置的调度程序,但我不确定:

    akka.actor.deployment {
      /XmppSenderActor {
        dispatcher = xmpp-dispatcher
      }
    
      xmpp-dispatcher {
        fork-join-executor.parallelism-min = 2
        fork-join-executor.parallelism-max = 3
      }
    }
    

    但这给了我一个错误: akka.ConfigurationException: Dispatcher [xmpp-dispatcher] not configured for path akka://sangria-server/user/XmppSenderActor

    1 回复  |  直到 9 年前
        1
  •  3
  •   Aurélien Thieriot    9 年前

    我可能会尝试配置路由器。

    http://doc.akka.io/docs/akka/2.0/scala/routing.html

    调度员似乎处理的是向收件箱发送消息,而不是实际数量或Actor目标。

    该配置尤其适用于您:

    akka.actor.deployment {
      /router {
        router = round-robin
        nr-of-instances = 5
      }
    }
    

    这个 nr-of-instances 将从一开始创建5个孩子,从而满足您的需求。 不过,您可能需要找到正确的路由器实现。

    推荐文章