首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vert.x与RxJava的区别

vert.x与RxJava的区别
EN

Stack Overflow用户
提问于 2017-05-24 15:19:45
回答 3查看 9.1K关注 0票数 20

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

EN

回答 3

Stack Overflow用户

发布于 2017-05-24 15:28:28

VertX是用于异步服务器的服务器框架,而RxJava是用于异步计算的框架。VertX支持RxJava,许多人同时使用它们。

如果你打算创建一个web应用程序,并且想要一个可伸缩的后端,可以使用VertX,也可以使用RxJava。但是如果你使用的是其他平台,那就使用RxJava吧。

Vert.x API for RxJava上阅读有关同时使用VertX和RxJava的更多信息

票数 31
EN

Stack Overflow用户

发布于 2018-07-19 23:33:29

在他们自己的网站上:

JVM Vert.x是一个用于在

上构建反应式应用程序的工具包。

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

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

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

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

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

这个事件总线支持:

同一JVM内多语言垂直节点之间的

  1. Point-to-point,请求响应和发布-订阅messaging
  2. Communication多个JVM instances
  3. Bridge中多语言垂直节点之间的instance
  4. Clustered通信到Stomp或AMQP实现,以便与其他applications
  5. Bridge集成到SockJS,以便与Javascript前端

直接集成。

事件总线由以下各项支持:

  1. 集群管理器,如Hazelcast、InfiniSpan、Ignite或ZooKeeper,通过更高级别的API access

提供分布式地图、锁和计数器

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

支持

  1. SSL的TCP服务接入点,可实现双向安全通信和最高性能

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

更多详细信息hereherehere

希望这能帮上忙

Softjake

票数 7
EN

Stack Overflow用户

发布于 2019-04-08 12:31:02

Vert.x是一堆模块和扩展,统称为工具包。核心模块包括web服务器和称为Verticle的并发模型。RxJava是ReactiveX的Java实现。两者都基于事件驱动原理,但web服务器无法与RxJava相提并论。

所以我猜这里的潜在比较是Verticle和RxJava之间的比较。

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

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

为了解释RxJava,想想Java8Stream,它在集合上引入了流和更高阶的函数,如mapfilterzip等。RxJava的用例是当流是异步的。

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44151560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档