Java(和JVM语言)有很多不同的Actor模型实现。
许多Actor库和框架已经被实现以允许Java中的Actor风格编程(其没有内建Actors)。我认为Actor模型具有很大的优势,但是Java的选择是压倒性的!
有人可以发布最流行的,并提供一些洞察到哪些使用?根据每秒传递的消息,哪些产品具有吞吐量基准?
发布于 2018-03-07 11:59:24
Carl Hewitt在这里解释了Actor计算模型的本质。
Killim和Akka(斯卡拉)表现最佳。我会建议使用Akka。 从Scala 2.11.0开始,Scala Actors库已被弃用。已经在Scala 2.10.0中默认的actor库是Akka。如果您不想在Scala中完成所有编码,请使用akka作为前端并调用您的java代码。Scala和Akka有非常好的语法和API。Akka有一个名为“活动对象”的Java API。请注意,现在Akka发生了很多事情,因此代码库正在快速移动。请参阅Java入门文档
Killim是基于java的,但编译时编织。
Jetlang和FunctionalJava是没有编译时编译的选项(??不确定),但没有Akka和Killim那么快(目前没有这方面的数据,但Jonas Boners和Viktor Klangs在Scala Days中有一些旧数据2010)。
其他选项是使用常规JMS(或其他一些MQ / PubSub)。你也可以做你自己的简单的内部JVM发布渠道/工作者。或者只是使用java util并发 ExecutorService或 com.google.common.util.concurrent
其他具有Actor实现的基于Scala的框架/库是Stambecco,Lift和Scalaz。
其他类似的模型是Hazlecast分布式执行器服务,Oracle Coherence与InvocableService,GigaSpaces执行器或IBM eXtreme Scale。但是这些在一定程度上缺少了“演员是系统”的部分。
发布于 2018-03-07 12:47:29
Jumi Actors是Java的演员库。它被设计成在Java代码中使用是自然的 - 不需要为每条消息创建一个类,但消息在接口上表示为方法。它的演员也是垃圾收集,所以他们不需要明确停止。使用Jumi Actors的代码是可测试的,两个单元都可以在不使用actors容器的情况下进行测试,并且可以使用确定性的单线程容器实现进行集成测试。
与Akka Actors相比,二进制大小(33 KB vs 10+ MB)要小得多,速度要快得多。看看Akka教程中的Pi例子以及使用Jumi Actor的相同例子,Akka的计算大约需要480-520毫秒,但Jumi Actor只需要350-390 ms。(如果演员不做任何工作,我们将仅测量消息传递,这种差异无疑会更大。)在比较启动性能时,启动Akka容器需要620 ms,但启动Jumi Actors容器只需要25 ms。
https://stackoverflow.com/questions/-100001460
复制相似问题