C# 在典型的MVC应用程序中使用Akka.NET。怎么用?
我有一个使用实体框架与数据库交互的典型web应用程序。下面是该应用程序的详细信息C# 在典型的MVC应用程序中使用Akka.NET。怎么用?,c#,model-view-controller,architecture,akka.net,C#,Model View Controller,Architecture,Akka.net,我有一个使用实体框架与数据库交互的典型web应用程序。下面是该应用程序的详细信息 Demo.Core[包含日志记录(nlog内容)、助手类和系统 宽常数等] Demo.Entities[包含实体框架实体或edmx文件 仅限-无上下文] Demo.Business[包含数据管理器、EF上下文和业务 使用规则、验证等的规则] Demo.Web[包含作为前端的MVC应用程序] 现在我想在这个应用程序中使用Akka.NET。我创建了一个封装Akka系统参与者的引擎类,并创建了一个日志参与者(Demo.C
因此,这些问题的大多数答案往往是“它取决于”,这在很大程度上取决于您的体系结构和应用程序需求,但我将尝试在这里对其进行细分 1) 这取决于检索实体的频率。由于actors一次处理一条消息,如果每个实体有很多请求,那么如果消息队列太长,那么最终可能会有很长的请求来检索数据。由于Akka.Net是一种用于构建并发应用程序的工具,通常会将工作分解为最小的工作单元,因此您可以轻松地分配工作 2) 这取决于您的应用程序是否受读取或写入的约束,以及您是否对读取和写入的顺序有很强的要求。消息是以串行方式处理的,因此,如果通过负责读写操作的参与者将大量写操作发送到数据库,那么处理读操作可能需要一些时间。类似地,如果您有硬约束,即某个读取必须在给定的写入之前发生,那么您将希望读取和写入存在于同一队列中 3) 参与者由URI寻址,因此可以通过一个众所周知的URI和在ActorSystem实例上使用ActorSelection来检索它们。通常不需要创建自定义函数来发送给参与者。相反,创建公共函数以基于URI部分检索参与者URI 4) 是的,actor可以存在于多个程序集中,您只需要确保它们继承自一种actor类型,通常是ReceiveActor或UntypedActor
5) 他们有两个独立的演员系统,但可以通过Akka.Remote或Akka.Cluster加入他们。不过,Actor系统通常是长时间运行的进程,因此通常只能在专用于运行Actor系统的服务器和运行web服务器的前端节点上运行,只需加入系统并将消息推送到其中或从中提取数据。这里是新手。我做这件事的方式(目前正在做)是为dbWrite、dbRead、Webserver、logger、cache和其他服务提供单独的参与者。您可以在不同的上下文中使用它们,但请确保将它们的actorSelections传递给相互通信的参与者。否则,你会不知何故“失去”地址透明度的东西。我边走边学。我在前一年尝试过erlang,所以我有点“理解”这个演员的想法。只需要了解内部机制。我建议您从erlang bookSo开始在Akka.NET世界中没有数据管理器的概念?我的意思是通常我有不同的实体。要获得任何实体,我必须为每个实体创建一个参与者?大概有25个实体。。。!这真的是一种不同的编程方式。您好@Bruinbrown,是否有使用Akka.NET构建的ASP.NET MVC示例(关于爬虫的示例除外)?有关获取数据和保存数据的示例。。。也许是“博客样本”?