我们正在为我们的一个项目评估反应式编程框架。我刚刚看了一下vert.x教程。我检查了一下RxJava演示文稿。RxJava似乎更接近CompletableFuture。但是,尽管有底层模式,RxJava和Vert.x都提供了非阻塞编程的访问。我搞不懂它们之间的区别是什么。我将感谢在这方面的任何帮助。
发布于 2017-05-24 15:28:28
VertX是用于异步服务器的服务器框架,而RxJava是用于异步计算的框架。VertX支持RxJava,许多人同时使用它们。
如果你打算创建一个web应用程序,并且想要一个可伸缩的后端,可以使用VertX,也可以使用RxJava。但是如果你使用的是其他平台,那就使用RxJava吧。
在Vert.x API for RxJava上阅读有关同时使用VertX和RxJava的更多信息
发布于 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内多语言垂直节点之间的
直接集成。
事件总线由以下各项支持:
提供分布式地图、锁和计数器
支持
。
最后,Vert.x可以单独用于开发成熟的应用程序,也可以与SpringBoot、Fibers等框架协作使用。
希望这能帮上忙
Softjake
发布于 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,它在集合上引入了流和更高阶的函数,如map,filter,zip等。RxJava的用例是当流是异步的。
何时使用:当您想要操作流时。例如,将一个电影流中的帧与另一个流中的字幕进行匹配(毕竟RxJava是由Netflix创建的)。或者从几个股票市场行情做实时分析。
https://stackoverflow.com/questions/44151560
复制相似问题