Tag: akka

我应该使用Java中的哪个ThreadPool?

有大量的任务。 每个任务都属于一个组。 要求是每组任务应该像在单个线程中执行一样串行执行,并且吞吐量应该在多核(或多CPU)环境中最大化。 注意:还有大量的组与任务数量成比例。 天真的解决方案是使用ThreadPoolExecutor并同步(或锁定)。 但是,线程会相互阻塞,吞吐量不会最大化。 有什么好主意吗? 或者是否存在满足要求的第三方库?

如何从akka演员那里获得消息队列的大小?

应用程序中有Akka(Java API)actor(UntypeActor)和消息。 根据API合同,如果将一些消息发送给同一个actor,它们将被排队并逐个处理。 我想根据队列大小处理actor中的消息。 基本上:在Actor.onReceive()中处理当前的消息时,是否至少还有一个消息排队? 什么是Akka存档方式?

Akka中Typed和UnTyped Actors有什么区别? 什么时候用?

我试图阅读Akka文档,找出Typed和Untyped actor之间的确切区别。 什么时候用? 我不确定我错过了什么。 有人可以指点我相关的东西或者在这里提供这个问题的答案吗?

如何通过模拟其中的一个或多个方法来测试Akka Actorfunction

我很想知道如何通过在Actor中模拟一些方法 ( 用mocked替换真实对象/ actor的方法实现 )来测试Akka Actorfunction。 我用akka.testkit.TestActorRef ; 另外:我试图使用SpyingProducer但目前尚不清楚如何使用它。 (就像我,如果我在其实现中创建了actor,它将与我现在一样)。 谷歌搜索结果不是很冗长 。 我使用powemockito和java 。 但是这没关系。 我很想知道how to do it in principle 任何语言框架下使用任何语言 (所以如果你不知道power / mockito如何工作只是提供你的代码..(请)或完全了解你将如何使用你知道的工具。) 所以,假设我们有一个要测试的Actor: package example.formock; import akka.actor.UntypedActor; public class ToBeTestedActor extends UntypedActor { @Override public void onReceive(Object message) throws Exception { if (message instanceof String) { getSender().tell( getHelloMessage((String) message), getSelf()); } } […]

Akka与现有java项目的集成示例

如果我已经有使用spring和servlet容器的现有java Web应用程序。 将Akka整合到其中的正确方法是什么? 就像我将要让Actor1和Actor2相互通信一样。 什么是开始使用这些演员的切入点? (比如:1。把它放在那里2.更改配置3.获取对actor的引用) 我找到了http://doc.akka.io/docs/akka/2.2-M3/general/configuration.html但是他没有给我提供胶水。 只想获得整合的真实例子。 有一些简单的集成示例吗? 编辑:应用程序执行一些搜索,从外部获取一些数据,将信息存储到文件。 应用程序非常大。 有些组件/对象可以离开自己的生命,即直接客户端请求,它可以做一些并行的事情。 就像一些具有可变状态的单例对象一样。 事情是我不知道我可以在哪里申请演员,我正在调查它。 但我已经有很多同步块在这里和那里。 而且,我相信,已经有迹象表明演员可能会被应用。 (因为我不确定,也许我忘了把一些同步 ,当然也没有集成测试) 关于配置,我只是不确定我是否应该配置一些application.conf让Actrors / Akka在那里( 因为文档本身描述了它 )。 我所看到的: @Component(“someManager”) public class SomeManager { List something; // mutable state, that why I use locks here. // methods: add(), delete(), update() } 我可以把它SomeManagerActor SomeManager用于controller 。 因此,拥有控制器Actor会很好吗? 我想收到反馈( onReceive ()方法)。 这有点争议……这是我需要一些例子的另一个原因。 我相信我可以通过摆脱所有synchronized/whait/notify东西,将责任转移到演员,使用消息作为与他们之间的沟通方式来改进应用程序。 […]

使用maven分发akka微内核应用程序

我有一个用java开发的akka​​微内核应用程序。 为了分发应用程序,我使用了JCrankyi博客上的教程 http://jcranky.com/2012/07/13/akka-microkernel-with-maven/#comment-1322 使用maven-assembly-plugin和akka启动脚本。 descriptor.xml如下所示 akka zip ${Com-RubineEngine-GesturePoints} /deploy *.jar /lib src/main/start /bin src/main/resources/application.conf /config 来自POM.xml的片段 maven-assembly-plugin 2.3 /descriptor.xml make-assembly package single 起始文件是批处理文件,内容如下所示。 @echo off set SAMPLE=%~dp0.. set AKKA_HOME=%SAMPLE%\..\..\..\.. set JAVA_OPTS=-Xms1024M -Xmx1024M -Xss1M -XX:MaxPermSize=256M -XX:+UseParallelGC set AKKA_CLASSPATH=%AKKA_HOME%\lib\scala-library.jar;%AKKA_HOME%\lib\akka\* set SAMPLE_CLASSPATH=%SAMPLE%\config;%AKKA_CLASSPATH%;%SAMPLE%\lib\* java %JAVA_OPTS% -cp “%SAMPLE_CLASSPATH%” -Dakka.home=”%SAMPLE%” akka.kernel.Main 来自maven程序集的错误:程序集插件如下所示。 [INFO] Reading assembly descriptor: /descriptor.xml [INFO] ———————————————————————— [INFO] BUILD […]

Java Spring作为基于Akka的REST HTTP调用的客户端

我必须使用java-spring在scala-akka项目中编写这个REST服务。 我的scala REST服务就像 val route = post { path(“notification” / “signUp”){ headerValueByName(“App_Key”) { app_key => { handleWith { requestParameters: RequestParameters => //application specific implementation } } } } 其中包含标头中的App_Key和Content-Type以及json格式的请求参数 。 请求参数如下: case class RequestParameters ( var name: String, var email: String, var password: String, var hashKey: String ) 所以我必须从java spring调用这个REST服务。 我从java调用http://ipadress:port/notification/signUp苦苦挣扎。

Akka(java),非阻止广播给所有孩子

假设我有一个地区演员,每个地区都有一定数量的人。 你如何向每个人广播一条消息,知道人们的名单可以随着时间的推移而改变,广播路由器似乎是选择,但问题是他们有最大数量的路由,而且我不能动态地追加人们路由器。 我的问题是:我知道有一个EventBus,我可以订阅我的人员参加活动巴士,但我不希望他们收到所发布的每条消息,我希望他们收到该地区的消息。 现在在akka,我们必须创建一个具有一定数量路由的路由器,例如: Router router = new router(person1, person2) 这很糟糕,因为在该地区没有人,我不知道将加入我所在地区的人。 有没有办法制作一种动态路由器:例如: Region region = new region() region.router = new Router() Person person1 = new Person() region.router.subscribe(person1); region.router.tell(“hello”,null);

Akka是否支持没有对象序列化的进程内消息传递?

希望使用Akka Actors在同一JVM中的Java线程之间传递事件。 其中一些事件包含大对象(10-100Mb)。 我想避免序列化这些对象,同时通过仅传递对象的引用来节省内存空间; Akka支持这个吗? 我知道可以实现一个自定义的Akka序列化程序,这可能是一个解决方案,但除此之外我不太了解该框架。

Akka从源代码修改/创建配置文件

是否可以从源代码修改或创建配置文件。 我正在创建一些带有远程处理的客户端/服务器架构。 我想要实现的是能够启动客户端应用程序,例如:主机/端口,当没有配置文件时,创建一个满足命令行args的配置文件。 akka { actor { provider = remote } remote { enabled-transports = [“akka.remote.netty.tcp”] netty.tcp { hostname = “127.0.0.1” <— here port = 2553 <— here } } } 配置并不是很复杂。 我想从源端口改变端口(最终主机,现在它无论如何都是localhost用于测试),因为它有点自动化,所以我可以通过将它们传递给main函数来运行多个客户端。