演员系统中的数据存储

时间:2014-09-30 17:08:52

标签: scala akka actor

我正在开发基于Akka actor的事件处理管道。我为管道的每一步都有3个actor:FilterWorker,EnrichWorker和ProcessWorker;加上一个主管演员,确保事件从管道的一个步骤发送到下一个。

富集步骤可能需要查询一些外部数据库以获取额外数据,甚至创建我想要保留的新数据。例如,Web分析系统的富集步骤可能希望与发出单击的用户一起丰富点击事件,并将该用户信息存储在数据库中。

请记住这个例子,我看到以下选项:

1.使用单身人士;例如UserStore将目前为止收集的所有用户保留在内存中,并偶尔将它们保存到数据库中;拥有获取尚未在内存中的用户的所有逻辑。然而,在演员系统中使用单身人士似乎不是一个好主意(?)。

  1. 使用商店演员。使用tell添加新用户并要求获取它。
  2. 这有更好的模式吗?

    谢谢!

1 个答案:

答案 0 :(得分:1)

为了不让这个没有答案,我选择了第二个选项和johanandren建议让一个Actor填充数据存储角色。效果很好!