问题标签 [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.
google-app-engine - Google App Engine 是否适合近实时事件驱动的应用程序?
我们将开发一个近乎实时的事件驱动应用程序(后端和一堆移动客户端)。
我认为 Akka (http://akka.io) 非常适合这个。但是,我的同事想使用 Google App Engine 及其异步功能。我不相信这是最好的方法,我想知道我们是否可以以某种方式将这两件事融合在一起。我无法通过 Google 找到任何可靠的当代信息。
multithreading - 在 akka scala 演员中使用单例
我有一个演员正在将调用委托给有状态的单身人士。单例是有状态的,因为它维护着一个对象映射。这个单例对象仅在actor和一个类(不是actor)中使用,我在该映射中检索一个对象(因此只是线程安全读取)。
会不会有任何副作用/问题?谢谢
java - 如何在 Java 应用程序中使用 Akka Actor?
我想在 Java中使用Akka 演员。
我在 Eclipse 中下载akka-1.0.zip
并添加akka-actor-1.0.jar
到我的“构建路径”中。
然后我写了这个 Actor 类:
但我在 Eclipse 中遇到错误:
我是否需要在“构建路径”中添加更多文件,或者我做错了什么?我发现文档没有那么有用。
更新:我添加scala-library.jar
到我的构建路径中,上面的错误消失了。但是当我编译和运行应用程序时出现错误:
这是我使用我的演员的主要课程:
scala - Akka Actor 无法连接到 Scala Actor 可以连接的远程服务器
我有一个小问题。我刚刚将我当前项目的客户端-服务器通信从远程 Scala Actors 移动到远程 Akka Actors。
在我的本地机器上测试时一切正常,但是一旦我尝试在不同的机器上使用客户端和服务器运行代码,客户端就无法再访问服务器(我得到了java.nio.channels.NotYetConnectedException
)。我双重和三重检查了正在使用的 ip 和端口。这是我在代码中与 Scala 演员一起使用的相同主机数据(顺便说一句,它仍然有效。所以显然防火墙设置没有任何变化,服务器在技术上是可以访问的)
以下是代码的重要部分(我主要从 akkas 主页复制粘贴):
在服务器演员
在客户端:
我正在使用:Scala 2.8.1(虽然我不确定我客户端的机器是 2.8 还是 2.8.1,但我使用的是 akka 发行版中的 scala-library.jar)Akka 1.0
我知道你无法调试我的代码,但我会非常感谢任何提示或想法这里可能出了什么问题。
PS:尝试发送Ping
. 所以我没有费心增加超时时间。
java - 用 Java 创建 Web 服务器 / servlet 容器 - 站在巨人的肩膀上
首先也是最重要的:我想说这主要是个人练习。有很多容器和服务器(Tomcat、Jetty、Winstone)可以满足市场需求。
前几天我偶然发现了Akka项目,并且在过去对 Erlang 有过很多乐趣,我决定用它来构建一个功能性的 Web 服务器真的很酷。
然后我开始做白日梦。如果我可以使用现代框架并以代码高尔夫的方式构建一个几乎完全“站在巨人肩膀上”的 Web 服务器会怎样?这就是说:我可以设法使用多少其他人的工作。
理想情况下,要求类似于:
- 容错、可集群、分布式
- 易于配置
- 在可配置端口上支持 HTTP、HTTPS 和 AJP
- 支持接口绑定和多域
- 通过可插拔接口支持 JSP、Jython 等
- 支持允许实现 WebDAV、代理和 URL 重写等功能的模块
在这个关头,我最大的绊脚石是你到底如何使用 Jasper、Jetty、GlassFish 或任何其他东西来解释 JSP,而不用担心它们带来的所有其他东西,比如网络?
任何其他关于功能的建议都会非常棒。我还在研究非传统的配置方法,看看是否有比 XML 或属性文件更让我喜欢的东西。对于那些熟悉 Apache 的人来说,有时您需要一些脚本,有时您只需要键/值对。
因此,无论如何,请向我提出您的建议。
java - 如何从akka actor获取消息队列的大小?
应用程序中有 Akka (Java API) 演员 (UntypeActor) 和消息。根据 API 合同,如果有几条消息发送给同一个参与者,它们会被排队并一个接一个地处理。
我想根据队列大小处理演员中的消息。基本上:在 Actor.onReceive() 中处理当前一条消息时,是否至少还有一条消息在排队?Akka 的存档方式是什么?
concurrency - Akka 作为 Clojure 的并发模型
看起来Akka框架有很多很酷的东西(我不是很了解框架,希望尽快深入研究)。
是否鼓励在 Clojure 中使用 Akka?在 Clojure 项目中使用 Akka 作为并发模型并放弃内置设施是否有意义?
facebook - 从 Akka / Scala 发送出站 HTTP 请求
我知道如何在 Akka 中处理传入的 http 请求,但我希望我的基于 Akka 的 Web 应用程序也可以通过 HTTP API 通过发送出站调用与 Facebook 和 CouchDB 进行通信。有什么好的做法吗?调用应该是异步的吗?
java - 使用 Scala 实现类似队列的 JMS
是否可以使用 Akka 框架在 Scala 中实现 JMS 消息队列?
scala - 集群中参与者之间的 Akka 和状态
我正在研究我的 bc 论文项目,它应该是一个用 scala 和 Akka 编写的 Minecraft 服务器。服务器应该可以轻松地部署在云中或集群上(不确定我是否使用了正确的术语......它应该在多个节点上运行)。但是,我是akka的新手,我一直想知道如何实现这样的事情。我现在要解决的问题是如何在不同节点上的参与者之间共享状态。我的第一个想法是让 Camel actor 从 minecraft 客户端读取 tcp 流,然后将其发送到负载均衡器,负载均衡器将选择一个处理请求的节点,然后通过 tcp 向客户端发送一些响应。假设我有一个 AuthenticationService 实现参与者,它检查用户提供的凭据是否有效。每个节点都会有这样的参与者(或者可能更多),并且所有参与者都应该始终拥有完全相同的用户数据库(或状态)。我的问题是,保持这种状态的最佳方法是什么?我想出了一些我能想到的解决方案,但我还没有做过这样的事情,所以请指出错误:
解决方案#1:将状态保存在数据库中。这对于这个身份验证示例可能非常有效,其中状态仅由用户名和密码列表表示,但在状态包含不能轻易分解为整数和字符串的对象的情况下,它可能不起作用。
解决方案#2:每次对某个参与者的请求会改变其状态时,该参与者将在处理该请求后,将有关更改的信息广播给所有其他相同类型的参与者,这些参与者将根据原始演员发送的信息。这似乎非常低效且相当笨拙。
解决方案#3:让某个节点充当某种状态节点,其中会有代表整个服务器状态的参与者。除了此类节点中的参与者之外,任何其他参与者都没有状态,并且每次需要一些数据时都会询问“状态节点”中的参与者。这似乎也效率低下,而且有点防错。
所以你有它。我真正喜欢的唯一解决方案是第一个,但就像我说的那样,它可能只适用于非常有限的问题子集(当状态可以分解为 redis 结构时)。更有经验的大师的任何回应都会非常感激。问候,托马斯·赫尔曼