Saltar al contenido

Java Spring WebFlux frente a RxJava

Esta es la solución más acertada que encomtrarás compartir, sin embargo obsérvala pausadamente y valora si es compatible a tu trabajo.

Solución:

En general, el proyecto de soporte de RxJava que se basa en JDK8 y Project Reactor es compatible con JDK 8+. Pero para un principiante, puede aprender RxJava al principio. Desde Project Reactor, puede considerar que soluciona los inconvenientes en RxJava y es más adecuado para el desarrollo de Backend. RxJava tiene demasiados problemas que pueden causar falta de memoria si no puede usarlo bien. Pero al final, si desea usar Spring 5.2+ muy bien, debe aprender de RxJava->Reactor->NIO->Netty->Reactor netty.

La programación reactiva es un paradigma de programación, pero no lo llamaría nuevo. En realidad ha existido por un tiempo. Al igual que la programación orientada a objetos, la programación funcional o la programación procedimental, la programación reactiva es solo otro paradigma de programación.

El paradigma se define por Manifiesto Reactivo

Corrientes reactivaspor otro lado, es una especificación.

Para los programadores de Java, Reactive Streams es una API. Es el producto de una colaboración entre ingenieros de Kaazing, Netflix, Pivotal, Red Hat, Twitter, Typesafe y muchos otros. Reactive Streams es muy parecido a JPA o JDBC. Ambos son especificaciones API.

los API de flujos reactivos consta de solo 4 interfaces altas.

  1. Editor: Un editor es un proveedor de un número potencialmente ilimitado de elementos secuenciados, publicándolos de acuerdo con la demanda recibida de sus Suscriptores.
  2. Suscriptor: recibirá una llamada a Subscriber.onSubscribe(Subscription) una vez después de pasar una instancia de Subscriber a Publisher.subscribe(Subscriber).
  3. Suscripción: una suscripción representa un ciclo de vida uno a uno de un suscriptor que se suscribe a un publicador.
  4. Procesador Un Procesador representa una etapa de procesamiento, que es tanto un Suscriptor como un Publicador y obedece los contratos de ambos.

Estos conceptos toman diferentes manifestaciones en diferentes niveles y áreas. Por ej. Un desarrollador de Java podría pensar en cómo programar el suyo a nivel de aplicación, un ingeniero de base de datos podría pensar cómo podría reaccionar una base de datos a las llamadas API reactivas (por ejemplo, Mongo DB ha implementado un controlador Reactive Streams), un programador de red podría pensar qué tan reactivo las llamadas podrían hacerse efectivas a nivel de red.

Algunos de los marcos basados ​​en JVM que siguen la especificación de secuencias reactivas son

  • Marco de Akka Streams
  • manada de ratas
  • Vert.x
  • ReactiveX (RxJava 2.x y Reactor)
  • Clases de flujo de Java 1.9 (notará que las interfaces de flujos reactivos se mueven bajo la clase de flujo en Java 9)

ReactivoX es una combinación de las mejores ideas del patrón Observer, el patrón Iterator y la programación funcional. Extiende el patrón del observador para admitir secuencias de datos y/o eventos y agrega operadores que le permiten componer secuencias juntas de manera declarativa mientras abstrae las preocupaciones sobre cosas como subprocesos de bajo nivel, sincronización, seguridad de subprocesos, estructuras de datos concurrentes y no- bloqueo de E/S.

RxJava 2.0 y Reactor se basan en el proyecto ReactiveX. Y Spring WebFlux usa Reactor internamente.

Tanto Spring WebFlux (project-reactor) como RxJava2+ son implementaciones de flujos reactivos.

Spring está usando project-reactor, por lo tanto, tiene más soporte, publicidad y tiene una comunidad más grande, así que iría con eso.

Aquí tienes las comentarios y puntuaciones

Tienes la posibilidad dar visibilidad a esta reseña si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *