使用akka并行进行实时计算

时间:2014-04-06 06:53:16

标签: java akka

我有一个用例如下:

我需要在多个线程中分割我的计算,并且所有线程都需要在快速时间内将结果发送回主线程。

流量

  1. 用户输入的搜索查询
  2. 查询来到akka
  3. 查询需要在众多akka演员之间分配。
  4. 每位akka演员都会进行某种处理并将结果返回给父演员
  5. 但每个akka演员都是单线程的。我同时有多个查询。

    如何在不进行任何查询等待计算的情况下快速提供多个查询。

    akka适合此用例吗?如果是,我该如何建模呢?

1 个答案:

答案 0 :(得分:0)

Akka非常适合这种应用!

t确实每个actor都是单线程的。也就是说,每个actor按顺序(一次一个)和同步(单线程)处理自己的消息。但你可以自由地创造出你喜欢的演员,并且这些演员完全不同步地操作。

换句话说,您可以为每个查询请求生成一个新的actor。每个actor以安全的单线程方式处理单个请求,但作为一个整体,您可以同时处理多个查询。

对于您所描述的用例,我会考虑将akka-io用于您的IO图层以及类似balancing dispatcher模式的内容来划分查询工人。