有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java反应式框架的akka比较

我看到许多框架/库声称它们可以帮助用Java构建反应式应用程序,例如:Akka、Vert。x、 RxJava、Reactor、QBit等

它们似乎有不同的方法、特点、优点、缺点等。我找不到详细的比较。关于这些框架的每一个都有文档,但这还不足以让我理解其中的差异

主要的Java反应式框架之间有什么区别

哪些应用程序需求可以驱动Java反应式框架的选择

谢谢你抽出时间


共 (1) 个答案

  1. # 1 楼答案

    我正在研究RxJava,最近我做了一些关于Akka流和反应堆的研究

    据我所知,所有库都汇聚到一个称为Reactive-Streams的概念,因此可以在实现之间来回切换

    我相信,RxJava是所有库中最通用的,对其他库没有依赖性,并且对并发性没有任何意见。它在Android上非常流行,主要是因为其他库/框架的支持,比如改型。1。x分支不实现反应流,但为其提供了包装器,而2。x与本机反应流兼容(当前可在预览中获得)。许多流行的基于JVM的编程语言都有适配器(Scala、Kotlin、Clojure等)

    反应器符合反应流,因为它是最新的库。它们对许多其他库都有依赖/支持。当涉及到流中的并发和排队时,他们选择了一组不同的折衷方案(即LMAX中断器风格)。it和RxJava之间有一些关于操作符的往返,我们已经开始讨论拥有一个共享的操作符池

    Akka被类似Scala的概念高度主导;我在让它工作时遇到了一点小麻烦。它背后的团队参与了反应流规范的开发,有一个Akka Streams库被宣传为支持反应流,但是,访问它很麻烦,因为它的fluent API与Akka actor模型严重交织在一起

    如果您在服务器/桌面/Android端,那么RxJava通常是一个不错的选择(我相信它的文档记录比其他的好),它的目标是实现高吞吐量异步操作。如果您更关注延迟,那么Reactor可能是一个更好的选择。我不太了解Akka Streams的用法,但我在一年前看到一个基准测试,其中围绕Akka构建的web服务器的性能优于Tomcat和Netty+RxJava