asp.net - Akka.net 异步方法处理
问题描述
我有一个在 IIS 7.0 中公开的 web api REST 服务。我有一个 POST 方法,它收集请求对象,我们需要同时将每个请求对象提交到后端数据源,聚合并返回结果。可以有超过 100 个请求对象,响应大小约为 1 MB。我们希望响应在 3 秒内返回到通道,每个后端调用(对另一个数据源的 Web 服务调用)大约需要不到 500 毫秒
我的问题是——
- 我们怎样才能做到这一点?
- 我们可以通过 Akka.net 实现这一目标吗?有哪些选择?
解决方案
Akka.net 是一个演员框架。Actor 旨在一次处理一条消息并隔离它们的状态,以便在 Actor 之间没有共享资源。Actor 不一定是并发框架,尽管有一些方法可以使用 Actor 对并发操作进行建模。例如,您可以让一个参与者充当路由器,其中包含一个参与者池,每个参与者将一条记录插入到底层存储库中。但是,这不会尝试同时插入所有请求,因为路由器池将具有最大大小,因此这将是并发插入的限制。
在没有 Akka.net 的情况下实现所需行为的一种简单方法可能是使用PLINQ将请求对象同时插入数据库。
推荐阅读
- java - 忽略测试后 IntelliJ 上的 Testng 没有输出
- java - 如何使用 SSL 加密从客户端到数据库的数据?
- jquery - HTML - jQuery blur(function() 在输入时触发,然后循环
- python - 在具有列表值的文件中读取字典
- javascript - 使用 jQuery 时的线条动画
- swift - Finder 同步扩展无法从桌面读取/写入文件
- java - 如何使文件只读整数并按数字排序
- python - 一种检查月份和日期组合在 Python 3 中是否有效的方法
- javascript - 正则表达式匹配英语和俄语句子的开头和结尾
- c# - 使用自定义协议