Tag: 斯卡拉阿卡

斯卡拉演员和环境参考

在Phillip Haller的博士论文 (5.1未来工作)中提到,其中一个有趣的研究领域是用环境参考文献扩展框架,他引用了Van Cutsen的论文。 摘抄: Scala Actors库包含一个运行时系统,为远程(即VM间)参与者通信提供基本的支持。 为了提供对容错能力的支持(例如,在移动ad-hocnetworking中),使用支持易失性连接的远程参与者参考来扩展框架将是有趣的,类似于环境参考[36]。 将容错分布式编程的事务抽象(例如[52,142])集成到Scala Actor中是未来工作的另一个有趣的领域。 而被引文件是: Tom Van Cutsem,Jessie Dedecker,Stijn Mostinckx,Elisa Gonzalez Boix,Theo D'Hondt和Wolfgang De Meuter。 环境参考:寻址移动networking中的对象。 第986-997页。 ACM,2006年10月。 这是阿卡做的吗? 如果没有,鉴于阿卡今天存在这个事实,你认为研究这个领域还是相关的吗?

在Scala Akka期货中,map和flatMap有什么区别?

在普通的Scala中,map和flatMap是不同的,flatMap会将数据的迭代返回到列表中。 但是在Akka文档中,map和flatMap似乎有所不同呢? http://akka.io/docs/akka/1.1/scala/futures.html 它说:“通常情况下,这很好地工作,因为它意味着运行一个快速函数的开销很小,如果函数有可能花费不less的时间来处理,那么最好同时完成这个工作,为此我们使用flatMap:“ val f1 = Future { "Hello" + "World" } val f2 = f1 flatMap {x => Future(x.length) } val result = f2.get() 有人可以解释阿卡期货在这里的地图和flatMap有什么区别吗?

向前和告诉阿卡演员之间的区别

告诉和转发有什么区别,如果我会发送相同的消息: case msg: Message => otherActor tell (msg,sender) 和 case msg: Message => otherActor forward msg

我怎么能从演员本身得到一个阿卡演员的名字?

所以,如果我有一个演员,我可以给它一个名字。 但是,我可以在内部访问该名称吗? 例: class Actorz extends Actor with ActorLogging { val actorName = //??What function def receive = { case x => log.debug(actorName+": Received Message: "+x) } } val actor = system.actorOf(Props[Actorz], "named") actor ! "dogs" 现在,我可以传递它的名字作为构造函数参数。 但是,这似乎是不必要的重复,如果有内部获取名称的方式…因为它是在我使用system.actorOf实例化actor时设置的。 API文档似乎没有任何东西。

我是否需要重复使用相同的Akka ActorSystem,或者每次需要时都可以创build一个?

Akka 2.x需要许多命令才能引用ActorSystem 。 所以,要创build一个演员MyActor的实例,你可能会说: val system = ActorSystem() val myActor = system.actorOf(Props[MyActor]) 由于对ActorSystem的频繁需求:许多代码示例省略了代码的创build,并假定读者知道systemvariables来自哪里。 如果你的代码在不同的地方产生了actor,你可以复制这个代码,可能创build更多的ActorSystem实例,或者你可以通过引用一些全局或者通过传递ActorSystem来共享相同的ActorSystem实例。 Akka文档提供了“演员系统”标题下演员系统的总体概述 ,并且有ActorSystem类的文档 。 但是这些都没有帮助解释为什么阿卡用户不能仅仅靠阿卡来pipe理这个问题。 问题(S) 每次共享相同的ActorSystem对象或创build一个新对象有什么意义? 这里最好的做法是什么? ActorSystem似乎令人吃惊。 一些例子给了ActorSystem一个名字: ActorSystem("MySystem")其他的只是调用ActorSystem() 。 这有什么不同,如果你使用同一个名字两次? akka-testkit是否要求您将您传递给TestKit构造函数的一个共享TestKit ?

Akka – 你应该创build多less个演员实例?

我是Akka框架的新手,我正在Netty + Akka之上构build一个HTTP服务器应用程序。 我的想法到目前为止是为每种types的请求创build一个actor。 例如,我将有一个演员为POST到/我的资源和另一个演员为GET到我的资源。 我困惑的地方是我应该如何去创造演员? 我是不是该: 为每个请求创build一个新的actor(我的意思是每个请求我应该做适当的actor的TypedActor.newInstance())? 创造一个新的演员有多昂贵? 在服务器上创build每个angular色的一个实例,并为每个请求使用该angular色实例? 我读过一个演员一次只能处理一个消息,所以这不是瓶颈吗? 做别的事吗? 感谢您的任何反馈。

Scala中间件select有什么区别?

注意: 不幸的是,这个问题已经closures了,但是我试图保持它,如果有其他人同时提出了同样的问题。 我一直在寻找一个很好的解决scheme来开发一个位于移动设备和现有Web服务之间的Scala服务。 目前可行的选项列表如下: 欺骗 喷雾 蓝眼睛 阿卡 Play2 Mini 未经过滤 电梯 抽烟 了Scalatra 那里可能有更多的select。 如何决定使用哪一个? 什么是一个好的Scala中间件select的特点(原谅双关语 – )。 一方面,我想去Akka,因为它是TypeSafe Scala栈的一部分,但是另一方面,像Finagle这样的库有一套丰富的库,使pipe道工程变得如此简单。 喷雾看起来不错,使用简单。 任何build议,见解或经验将不胜感激。 我相信有人在那里一定有一些他们不会介意分享的经验。 更新: 我很想重新打开这个问题。 这个问题的一个很好的答案将帮助新的Scalateers避免相关的陷阱。 更新2: 这是我自问这个问题后的经历: Finagle – 我使用Finagle进行一个项目,它坚如磐石。 喷雾 – 在我最近的项目中,我使用喷雾,我非常高兴。 最新版本build立在Akka 2上,您可以使用Spray-can库直接运行,无需使用Web服务器。 喷雾是一套库,而不是一个框架,是非常模块化的。 学习喷雾:Akkavideo中的REST提供了一个很好的概述, Cakesolutions的这个博客展示了一个非常好的开发方法和架构。 更新3: 生活移动得很快。 如果你偶尔停下来看看,你可能会想念它。 – Ferris Bueller 现在select变得更简单了。 在我的愚见中,斯普雷赢得了这场战斗。 它被整合到Akka成为下一个Akka HTTP。 我现在已经在多个项目上使用Spray,可以诚实地说,这是我遇到过的梦幻般和最好的支持软件。 这并没有回答最初的问题,但至less给了一些迹象说明为什么Spray在大多数情况下似乎是最好的select。 它非常灵活,非阻塞,非常稳定。 它有客户端和服务器端的库以及一个很好的testing工具。 另外,看看这些统计数据来获得性能的一个主意: […]

阿卡杀死与停止与毒丸?

阿卡的新手问题 – 我正在阅读阿卡基础知识,有人可以解释阿卡停止/毒丸与杀死之间的区别? 这本书只提供了一个小的解释“杀死是同步与毒药是asynchronous的”。 但是以什么方式? 调用actor在这段时间内是否locking? 在杀人期间通知儿童的演员,停止煽动等? 一个概念与另一个概念的使用范例? 非常感谢!