首页 > 解决方案 > Akka.net 异步方法处理

问题描述

我有一个在 IIS 7.0 中公开的 web api REST 服务。我有一个 POST 方法,它收集请求对象,我们需要同时将每个请求对象提交到后端数据源,聚合并返回结果。可以有超过 100 个请求对象,响应大小约为 1 MB。我们希望响应在 3 秒内返回到通道,每个后端调用(对另一个数据源的 Web 服务调用)大约需要不到 500 毫秒

我的问题是——

  1. 我们怎样才能做到这一点?
  2. 我们可以通过 Akka.net 实现这一目标吗?有哪些选择?

标签: asp.netakka.net

解决方案


Akka.net 是一个演员框架。Actor 旨在一次处理一条消息并隔离它们的状态,以便在 Actor 之间没有共享资源。Actor 不一定是并发框架,尽管有一些方法可以使用 Actor 对并发操作进行建模。例如,您可以让一个参与者充当路由器,其中包含一个参与者池,每个参与者将一条记录插入到底层存储库中。但是,这不会尝试同时插入所有请求,因为路由器池将具有最大大小,因此这将是并发插入的限制。

在没有 Akka.net 的情况下实现所需行为的一种简单方法可能是使用PLINQ将请求对象同时插入数据库。


推荐阅读