问题标签 [akka]
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.
scala - 使用 akka 和 scala 实现请求/响应协议的最佳方法是什么?
我一直在研究如何开发一个分布式架构,使用通过参与者并发的概念来实现协议请求/响应。
我得出的结论是,最好的方法是创建一个同步处理 Futures/Promises 的响应系统,并在响应后不久留下一个开放的通道来接收通知。
因此,这种架构可以像收件箱消息一样工作。
它有一些问题。
因此我必须维护两个端点(两层中的参与者)?
问题: 视图模块请求处理特定元素。她发送此命令以通过应用程序服务器上的 RemoteActor 进行处理。该服务器应立即返回在处理元素时将通知您的承诺。在此之后,视图模块将等待处理完成的通知。
你怎么看这个问题?
我正在使用 Scala、Akka 和 Google Guice。
我相信这是一个普遍的问题,每个人都可以利用他们的解决方案。如果我损害了 stackoverflow 网站的条款,请原谅。
提前致谢
java - Akka远程actor服务器发现
我想在集群上部署一个用akka制作的远程演员软件。该系统由几个工作节点和一个主节点组成。问题是我无法提前知道集群节点的 IP 地址(但我知道它们都是同一个子网的一部分)。因此,我需要一种在启动后发现每个人的 IP 地址的好方法,以便在每个节点上创建正确的 actor refs。
我正在寻找在任何自由软件许可下分发的轻量级解决方案(我只需要它进行初始设置)。
java - 有界阻塞队列 Java
我正在寻找一种BoundedBlockingQueue
可以采取任何其他方式Queue
并使其有界和阻塞的方式。
我发现akka.util.BoundedBlockingQueue
哪个可以做到这一点,但是源代码中有一些修复程序。所以我不确定使用代码是否聪明。
最后,我希望有一个 PriorityQueue 有界且可用于并发使用。
我可以使用其他一些类来完成这项任务吗?也许在 Java 7 中?
scala - 演员信息应该扩展一个共同的特征吗?
在正确使用 scala(和 akka)actor 框架的大多数示例中,人们倾向于从单个 trait 派生每条消息。例如:
然而,在 Scala 和 Akka 中,消息接收根本没有类型。有什么理由实现一个共同的特征吗?
akka - 配置 core-pool-size-factor 和 max-pool-size-factor 设置的一般良好做法是什么?
例如,如果 CPU 有四个核心和八个核心线程。
- 我应该将core-pool-size-factor设置一直设置为 8 吗?
- max-pool-size-factor相对于core-pool-size-factor 的一般大小是多少?
- 我提到的其他设置是否与使用 Akka 配置有关?
java - Akka 是否适用于具有瞬态网络覆盖的系统?
Akka 是否适合在预计节点将进出 wifi 覆盖范围的系统中使用?必须考虑哪些方面(例如首选哪些传输协议)?
scala - MongoDB 支持的持久性还在 Akka 中吗?
我在 Akka 1.0 中找到了一些关于 mongodb 持久性的文档,但似乎在 1.2 文档中找不到任何提及它的内容。它被删除了吗?我也找不到任何说它已被删除或弃用的东西。
如果它仍在 Akka 中,任何相关文档的链接将不胜感激。
谢谢!
java - Akka - 对象序列化期间的 StackOverflowError
我遇到了一个持续超过 2 天的问题。当我在演员之间交换消息时,正在指责 JVM 堆栈溢出。
我的消息是一个具有许多链接的对象(10000 多个子对象在一个链接列表中链接在一起)。即具有 Neo4J 关系的对象。
错误是这样的:
有没有人对此有任何解决方案?
谢谢
scala - Akka 的 I/O 是如何工作的?
当您需要执行 I/O(即数据库操作)时,actor 模型(在 Akka 中)如何工作?
据我了解,阻塞操作会引发异常(并且由于 Akka 使用的 Netty 的事件性质,基本上会破坏所有并发性)。因此,我将不得不使用 aFuture
或类似的东西 - 但是我不了解并发模型。
- 1个演员可以同时处理多条消息吗?
- 如果一个actor在a
future
(ie.future.get()
) 中进行了阻塞调用,那么它只会阻塞当前actor的执行;还是会阻止对所有参与者的执行,直到阻塞调用完成? - 如果它阻塞了所有执行,那么使用 future 辅助并发性(即将来不会调用阻塞调用仍然等于创建一个参与者并执行阻塞调用)?
- 处理每一步都依赖于最后一步的多阶段过程(即从数据库读取;调用阻塞 Web 服务;从数据库读取;写入数据库)的最佳方法是什么?
基本上下文是这样的:
- 我正在使用将维护数千个会话的 Websocket 服务器。
- 每个会话都有一些状态(即身份验证详细信息等);
- Javascript 客户端将向服务器发送 JSON-RPC 消息,服务器会将其传递给适当的会话参与者,后者将执行它并返回结果。
- RPC 调用的执行将涉及一些 I/O 和阻塞调用。
- 将有大量并发请求(每个用户将通过 WebSocket 连接发出大量请求,并且会有很多用户)。
有没有更好的方法来实现这一目标?
scala - remote.shutdown() 不会杀死 akka 远程参与者本身
客户端发送PoisonPill和“停止”信号,但遥控器永远不会自行终止。我必须通过调用 remote.shutdown() 来杀死对象 RemoteEchoServer 中的远程参与者。如何通过接收“停止”消息来关闭远程演员?
我知道 exit() 可能会直接退出服务器应用程序,但如果仍有请求需要处理怎么办。
关键是调用 remote.shutdown() 永远不会关闭远程服务(服务器应用程序),所以如果我想为演员停止服务器应用程序该怎么办