Questions tagged «akka»

Akka是一个开源工具包和运行时,简化了JVM上并发和分布式应用程序的构造。它实现了Erlang已知的actor模型。

12
Akka的好用例[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我听说过很多关于Akka框架(Java / Scala服务平台)的赞誉,但是到目前为止,还没有看到很多对用例有用的实际用例。因此,我想听听有关开发人员成功使用它的知识。 仅一个限制:请不要包括编写聊天服务器的情况。(为什么?因为这已被过度用作许多类似事物的示例)

4
Akka Kill vs. Stop vs. Poison Pill?
关于Akka的新手问题-我正在阅读Akka Essentials,有人可以解释一下Akka Stop / Poison Pill与Kill的区别吗?本书仅作了一个小小的解释:“杀人是同步的,而毒药是异步的”。但是用什么方式呢?调用方线程在此期间是否锁定?是否在杀戮,制止后唤起等等期间通知儿童演员?一个概念与另一个概念的示例用法? 非常感谢!
212 scala  akka 

3
何时使用参与者代替诸如WebSphere MQ或Tibco Rendezvous之类的消息传递解决方案?
我已经阅读了以下问题和答案:哪些设计决策会偏爱Scala的Actors而不是JMS?。 通常,我们使用已经存在多年的消息传递解决方案:使用WebSphere MQ或Apache ActiveMQ之类的JMS实现进行点对点通信,或者使用Tibco Rendevous进行多播消息传递。 它们非常稳定,经过验证,并提供高可用性和高性能。但是,配置和设置似乎比Akka复杂得多。 在迄今已成功使用上述产品(WebSphere MQ或ActiveMQ)的某些用例中,何时以及为何使用Akka?为什么在我的未来项目中应该考虑使用Akka代替WebSphere MQ或Tibco RV? 我什么时候应该避免Akka?它是否提供与其他解决方案相同的高可用性和性能?还是将Akka与其他消息传递中间件进行比较是一个坏主意吗? 也许除了JMS(点对点),TibcoRV(多播)和Akka之外,我还应该考虑JVM环境中的另一种消息传递解决方案?
106 java  scala  jms  actor  akka 

5
Akka与Erlang相比如何?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我最近一直在看akka,它给人留下了深刻的印象。它似乎具有erlang的大多数杀手级功能-位置透明性,监管层次结构等。erlang是否具有akka没有的任何功能?
97 erlang  akka 

3
Akka或Reactor [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我正在启动一个新项目(基于Java)。我需要将其构建为模块化,分布式和弹性架构。 因此,我希望业务流程能够相互通信,可互操作且独立。 我现在看的是两个框架,除了年龄不同外,它们还表达两种不同的观点: 阿卡(http://akka.io) 反应堆(https://github.com/reactor/reactor) 选择上述框架之一时应该考虑什么? 据我到目前为止所知,Akka仍然以某种方式耦合在一起(以某种方式我必须“选择”我想向其发送消息的演员),但非常有弹性。当Reactor松动时(基于事件发布)。 有人可以帮助我了解如何做出正确的决定吗? 更新 在更好地回顾了Akka 的事件总线之后,我认为Akka已经包含了Reactor所表达的功能。 例如,可以在Akka中表示为https://github.com/reactor/reactor#events-selectors-and-consumers上记录的订阅和事件发布: final ActorSystem system = ActorSystem.create("system"); final ActorRef actor = system.actorOf(new Props( new UntypedActorFactory() { @Override public Actor create() throws Exception { return new UntypedActor() { final LoggingAdapter log = Logging.getLogger( getContext().system(), this); @Override public …

3
Node.js事件系统与Akka的参与者模式有何不同?
我已经工作Node.js了一段时间,并认为自己在Java方面非常出色。但是我刚刚发现Akka并立即对其演员模式感兴趣(据我了解)。 现在,假设我的JavaScript技能与我的Scala / Java技能相当,那么我想专注于这两个系统的实用性。特别是在Web服务方面。 据我了解,Node非常擅长处理许多并发操作。我认为用于资产管理系统的良好Node Web服务将擅长处理许多同时提交更改的用户(在大型,繁忙的应用程序中)。 但是,在了解了Akka的演员之后,它似乎在同一件事上表现出色。我喜欢将工作减少到一口大小的想法。另外,几年前,我涉足了Erlang,并爱上了它使用的消息传递系统。 我在处理复杂业务逻辑的许多应用程序上工作,我想是时候该重拾一个了。特别是升级旧的Struts和C#应用程序。 无论如何,避免圣战,这两个系统在本质上有何不同?似乎两者都朝着相同的目标发展。也许Akka的“自我修复”架构具有优势。 编辑 看来我获得了接近的票数。请不要将此问题当作“哪个更好,节点还是akka?”。我要寻找的是事件驱动库(如Node)和基于参与者的库(如Akka)的根本区别。
93 node.js  events  akka  actor 

3
Scala中的多个Actor实施有何不同?
随着Scala 2.9.0的发布,还宣布了Typesafe Stack,它结合了Scala语言和Akka框架。现在,尽管Scala在其标准库中有参与者,但Akka使用其自己的实现。而且,如果我们寻找其他实现,我们还将发现Lift和Scalaz也具有实现! 那么,这些实现之间有什么区别?
76 scala  actor  akka 



3
如果引发异常,Akka Actor不会终止
我目前正在尝试开始使用Akka,并且遇到了一个奇怪的问题。我的演员有以下代码: class AkkaWorkerFT extends Actor { def receive = { case Work(n, c) if n < 0 => throw new Exception("Negative number") case Work(n, c) => self reply n.isProbablePrime(c); } } 这就是我开始工作的方式: val workers = Vector.fill(nrOfWorkers)(actorOf[AkkaWorkerFT].start()); val router = Routing.loadBalancerActor(SmallestMailboxFirstIterator(workers)).start() 这就是我关闭所有内容的方式: futures.foreach( _.await ) router ! Broadcast(PoisonPill) router ! PoisonPill …

2
将Akka流传递到上游服务以进行填充
我需要调用上游服务(Azure Blob服务)以将数据推送到OutputStream,然后需要通过akka转过来并将其推送回客户端。没有akka(只有servlet代码),我只需要获取ServletOutputStream并将其传递给azure服务的方法即可。 我可以尝试碰到的最接近的东西,显然这是错误的,是这样的 Source<ByteString, OutputStream> source = StreamConverters.asOutputStream().mapMaterializedValue(os -> { blobClient.download(os); return os; }); ResponseEntity resposeEntity = HttpEntities.create(ContentTypes.APPLICATION_OCTET_STREAM, preAuthData.getFileSize(), source); sender().tell(new RequestResult(resposeEntity, StatusCodes.OK), self()); 我的想法是,我正在调用上游服务,以通过调用blobClient.download(os)获得填充的输出流; 似乎lambda函数被调用并返回,但是随后它失败了,因为没有数据或其他东西。好像我不应该让那个lambda函数来完成这项工作,但是也许返回一些可以完成这项工作的对象?不确定。 如何做到这一点?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.