我正在开发基于Akka actor的事件处理管道。我为管道的每一步都有3个actor:FilterWorker,EnrichWorker和ProcessWorker;加上一个主管演员,确保事件从管道的一个步骤发送到下一个。
富集步骤可能需要查询一些外部数据库以获取额外数据,甚至创建我想要保留的新数据。例如,Web分析系统的富集步骤可能希望与发出单击的用户一起丰富点击事件,并将该用户信息存储在数据库中。
请记住这个例子,我看到以下选项:
1.使用单身人士;例如UserStore将目前为止收集的所有用户保留在内存中,并偶尔将它们保存到数据库中;拥有获取尚未在内存中的用户的所有逻辑。然而,在演员系统中使用单身人士似乎不是一个好主意(?)。
这有更好的模式吗?
谢谢!
答案 0 :(得分:1)
为了不让这个没有答案,我选择了第二个选项和johanandren建议让一个Actor填充数据存储角色。效果很好!