问题标签 [actor-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
453 浏览

java - 使用 AKKA 的聊天服务器框架

我正在尝试使用 AKKA (JAVA API) 开发一个聊天服务器来利用 Actor 模型。是否有任何框架可用于相同的

0 投票
1 回答
203 浏览

akka - 使用 Actor 模型保存驻留在 POCO/DTO 中的状态

我一直在寻找一些用例或代码示例,以说明如何使用实现业务逻辑的 Actor 模型来保存简单 DTO/POCO 模型类中的状态。

谢谢

0 投票
1 回答
564 浏览

java - 共享队列 VS Actor 模型

在我的 J2EE Web 应用程序中,我必须将每个 Web API 调用的计数发送到一个隔离线程以计算调用次数。可能性包括:

a) 使用原子长。如果我在一分钟内有数百万个电话,我认为这会引起争用。因为,所有线程都将尝试更新单个变量。

b) 使用共享队列。每个请求处理线程都将插入队列,并且专用计数器线程将从该队列中出列并增加计数。

c) 使用演员模型,比如使用 Akka 库。向参与者发送一条异步消息,这会将其添加到计数中。

我的问题是方法(b)与(c)相比如何。有什么优点和缺点,它们在低级别有什么不同?

0 投票
1 回答
919 浏览

akka - Akka Actors 消息的顺序排序

我对 Akka Actors 和 Actor Model 有点困惑。从 Actor A 发送到 Actor B 的消息是否保留了顺序?这如何在本地/网络环境中实现?据我所知,网络引入了可变延迟,如果 M1 的延迟为 1 秒,M2 的延迟为 0.5 秒,消息 M1 和消息 M2 如何保持顺序?

0 投票
1 回答
349 浏览

f# - 为什么 Akka.Net F# API 定义了 actorOf2 而没有定义 actorOf3、actorOf4 等?

我正在研究 F# Akka.Net API,它与 C# 对应物完全不同,因为它试图以惯用的方式公开 Akka 功能。所以它引入了一个计算表达式actor和几个辅助函数actorOfactorOf2

actorOf对于生成不依赖于其他演员的演员很有用,并且actorOf2允许发送另一个演员作为正在创建的演员的参数,如上所示。

这很清楚,但我想知道仅将单个演员作为参数有什么特别之处?定义actorOf3actorOf4等是否有助于向正在创建的演员发送多个演员参数?例如,C# 泛型 Action<...> 宏具有最多 16 个动作参数的定义。定义几个actorOfX函数有意义吗?例如,来自 Akka.Net bootcamp 的使用验证操作的代码如下所示:

你可以看到actor在链中相互引用:consoleReaderActor引用validationActor和validationActor引用consoleWriterActor。但是,如果我想让 consoleReaderActor 同时引用 validationActor 和 consoleWriterActor 怎么办?使用actorOf函数似乎不可能做到这一点。

更新感谢@Horsiath 的回答。我查看了 Akka.Net 训练营(F# 版本)中的一课,实际上可以在生成新演员时指定多个演员:

0 投票
1 回答
115 浏览

scala - Scala:服务器和工人演员绑定但无法交换消息?

我正在尝试运行服务器和远程演员。两者已成功启动并运行。但是,服务器并没有收到远程工作人员发送的消息。

我究竟做错了什么?另外,有什么方法可以跟踪正在发送的消息吗?主要用于调试。

0 投票
1 回答
83 浏览

akka - DataPipline 最佳实践的架构

鉴于:

某种外部源的数据导入。可以按定义大小的块读取数据。例如一次 10 个项目。例如电子邮件。

现在每个块都必须通过一些步骤来转换数据、过滤项目等等。

块或块的项目之间没有关系。处理顺序也不重要

问题

现在我正在考虑如果我使用 akka 来实现最佳的并行化和性能,什么样的结构才是正确的。

1.) 我是否更有可能将所有演员创建为一连串的孩子。所以 importActor 有一个 Child,这是第一步。第一步有第二步作为孩子等等。
或者更有可能有一个 ImportActor 具有所有步骤并在另一个之后调用?

2.) 现在一个actor一次只能处理一条消息。为了使导入过程并行化,我考虑使用PipeTo机制。这是一个好主意吗?有更好的选择吗?

3.) 我会为每个块创建一个像“Import_ Chunk1 _Actor”这样的演员,还是将所有消息推送到单个“ImportActor”?

0 投票
1 回答
1064 浏览

html - 网络工作者是否使用演员模型?

我一直在试图了解演员模型和网络工作者是如何工作的。

https://dzone.com/articles/html5-web-workers-classic中:“Web Workers 提供了一个消息传递模型,其中脚本只能通过定义明确的不可变消息进行通信,不共享任何数据,并且不使用同步机制来实现信令或数据完整性。”

对我来说,这听起来与演员模型非常相似。有区别吗?

更新:根据 Benjamin Erb 的说法:

" Actor 模型的基本思想是使用 Actor 作为并发原语,它们可以以不同的方式接收消息:

1.向其他参与者发送有限数量的消息。
2. 产生有限数量的新演员。
3. 改变自己的内部行为,在处理下一条传入消息时生效。”

前两个适用,但最后一个呢?

0 投票
1 回答
97 浏览

groovy - GPars、Actor 中的 NullPointerException

时髦的:1.8.6

GPars:0.12 或 1.2.1

操作系统:Ubuntu 14.04 LTS

执行此代码时,经常会发生 NullPointerException。a和b的范围越来越宽,这个错误也越来越容易出现。但是当范围有限时,永远不会发生错误。

我不明白为什么会发生错误。

0 投票
1 回答
190 浏览

akka - Akka 中的受监督参与者应该直接接收消息还是通过其监督者接收消息?

我最近观看了Riccardo Terrell 关于 Akka.NET 和 F# 的精彩视频但我要问的问题通常与 Akka 有关。我对他讨论错误的主管和监督策略的部分感到困惑。在他的示例中,客户端向主管发送消息,主管通过调用 worker.Tell(msg,mailbox.Sender()) 将消息转发给工作角色。我想知道这种做法有多普遍。在我们的系统中,有几个地方客户首先要求主管获取工作人员实例,然后直接对工作人员进行 Tell 调用。我对使用 Ask 并不满意,但在我们的例子中,我们需要 worker 关联性,即来自同一个客户端的消息可能需要路由到同一个 worker,因此给客户端一个 worker 实例可以简化这一点。但同样,Ask 很糟糕。因此,对于受监督的参与者,他们应该通过主管接收消息(以避免询问)还是“视情况而定”?