Rx java vert.x和RxJava之间的区别

Rx java vert.x和RxJava之间的区别,rx-java,vert.x,Rx Java,Vert.x,我们正在为我们的一个项目评估反应式编程框架。我刚看过vert.x教程。我检查了一下RxJava演示文稿。RxJava似乎更接近于可完成的未来。但是,尽管有底层模式,RxJava和Vert.x都提供了非阻塞编程的访问。我不知道他们之间有什么区别。我将非常感谢您在这方面的帮助。VertX是一个用于异步服务器的服务器框架,而RxJava是一个用于异步计算的框架。VertX支持RxJava,许多人将其结合使用 如果您要创建一个web应用程序,并且想要一个可伸缩的后端,请使用VertX,可能与RxJava

我们正在为我们的一个项目评估反应式编程框架。我刚看过vert.x教程。我检查了一下RxJava演示文稿。RxJava似乎更接近于可完成的未来。但是,尽管有底层模式,RxJava和Vert.x都提供了非阻塞编程的访问。我不知道他们之间有什么区别。我将非常感谢您在这方面的帮助。

VertX是一个用于异步服务器的服务器框架,而RxJava是一个用于异步计算的框架。VertX支持RxJava,许多人将其结合使用

如果您要创建一个web应用程序,并且想要一个可伸缩的后端,请使用VertX,可能与RxJava一起使用。但如果您在另一个平台上,只需使用RxJava即可

从VertX和RxJava各自的网站上阅读更多关于一起使用VertX和RxJava的信息:

EclipseVert.x是一个用于在JVM上构建反应式应用程序的工具包

它定义了用于编写异步网络应用程序的基本API(例如:db连接、监视、身份验证、服务发现、集群等)

在内部,它基于Netty项目,一个用于JVM的高性能异步网络库。但是,它提供了一个更高级别的API,更易于推理,并且仍然具有很高的性能

您可以专门使用基于Vert.x回调的API,但Vert.x也在幕后使用RxJava实现了一个等效的Rxified API。这为在RxJava应用程序中集成Vert.x模块提供了一个很好的平台

x是polyglot,因为它支持许多其他基于JVM的语言API,如Kotlin、Groovy、Ruby、Scala和Ceylon。此外,由于Vert.x是事件驱动和基于消息的,因此它还提供了一个JavaScript API,可用于集成前端和后端

x提供了流畅的HTTP端点和路由配置,由实现业务逻辑的处理程序提供支持。但真正的神经系统是事件总线,它充当所有Vert.x本地或分布式组件的电信提供商

此事件总线支持:

  • 点对点、请求-响应和发布-订阅消息传递
  • 同一JVM实例中多语言垂直体之间的通信
  • 多个JVM实例中多语言垂直体之间的集群通信
  • 桥接到Stomp或AMQP实现,以便与其他应用程序集成
  • 连接到SockJS的桥接器,用于直接与Javascript前端集成
  • 事件总线由以下各项支持:

  • 集群管理器,如Hazelcast、InfiniSpan、Ignite或ZooKeeper,通过更高级别的API访问提供分布式地图、锁和计数器

  • Vert.x服务发现API为底层复杂寻址方案提供了基于地址的抽象

  • 支持SSL的TCP服务访问点,用于双向安全通信和最高性能

  • 最后,Vert.x可以自行开发成熟的应用程序,也可以与SpringBoot、Fibers等框架协作使用

    更多细节,以及

    希望这有帮助


    Softjake是一组模块和扩展,统称为工具包。核心模块包含web服务器和称为Verticle的并发模型。RxJava是ReactiveX的Java实现。两者都基于事件驱动原则,但web服务器无法与RxJava相比

    所以我猜这里的基本比较是垂直与RxJava之间的比较

    Verticle是一个状态完全无法从外部访问的类,除非通过事件总线。因此,消息以单线程方式依次出现、排队和弹出。其想法是创建一个线程安全的环境,而不必处理Java臭名昭著的锁定机制。同样在并发行话中,这种结构被称为Actor

    何时使用:当您需要使用Java的
    synchronized
    块时。多个线程需要访问类变量(也称为竞争条件)的情况是,您可以删除Verticle或Actor的synchronized。在Vert.x中,您可以在不运行web服务器的情况下使用Verticle

    要解释RxJava请考虑Java 8 Stream,它在集合上引入了流式处理和更高阶的功能,如
    map
    filter
    zip
    等。RxJava的用例是当流是异步的时


    何时使用:当您想要操纵流时。例如,将电影流中的帧与另一个流中的字幕进行匹配(RxJava毕竟是由Netflix创建的)。或者从多个股票市场行情中进行实时分析

    你是说Verticle是异步服务器吗?不是,Verticle更像modulesOk。那么,在vert.x中,什么将构成异步服务器呢?vert.x是一个事件驱动的服务器,类似于Node.js,设计用于异步执行所有操作。如果您不使用Vert.x(或Node.js)异步编码,您将无法从事件驱动服务器获得好处。