【问题标题】:Having several actors sending messages to a singleton actor让多个演员向单例演员发送消息
【发布时间】:2013-11-10 16:41:32
【问题描述】:

我想要几个 Actor(代表基于 Akka IO 部分的 TCP 连接)。这些 Actor 将更新一个公共模型(在内存中)。这个模型被保存在另一个管理这个模型的 Actor 中。

我的问题是,我该如何设置这个结构?有没有办法告诉akka某个演员只有一个实例?

替代方案如下: 我已经有一个演员接受新的 TCP/IP 连接并将它们传递给新演员。现在我可以在 Connection-Receiver 中创建这个“Model-Manager-Actor”,并将这个 Actor 传递给新创建的 Per-Connection Actor。但在我看来,这似乎不是一个好方法,因为它将模型管理器与连接接收器联系在一起。

有人知道适合这种情况的解决方案吗?

谢谢

【问题讨论】:

  • “有没有办法告诉akka某个演员只有一个实例?”你为什么要这样做?强制只能创建一个?我认为这无法强制执行。
  • 我想在我的系统中管理一个存储模型的点。也许我使用 akka 的想法是错误的,但这是我的做法。这个想法有点像 Event-Sourcing,不写传入事件的日志。

标签: akka


【解决方案1】:

简单直接的解决方案是预先创建单例(例如,在启动应用程序时)并在创建它们时将其 ActorRef 传递给 TCP 连接参与者(可能通过服务器套接字处理程序参与者)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多