Portada de libro electrónico gratuitaAprende a programar en Java completo, desde programación lógica hasta avanzada

Aprende a programar en Java completo, desde programación lógica hasta avanzada

5

(3)

238 páginas

Programación reactiva con Java

Capítulo 213

Tiempo estimado de lectura: 5 minutos

Audio Icon

Escuchar en audio

0:00 / 0:00

Programación reactiva con Java

La programación reactiva es un paradigma de programación orientado al flujo de datos y la propagación de cambios. En otras palabras, se trata de construir sistemas que reaccionen a eventos, cargas de trabajo cambiantes y fallas de una manera responsiva, resiliente, elástica y basada en mensajes. Este paradigma es particularmente útil para tratar con sistemas interactivos en tiempo real, sistemas distribuidos, microservicios y aplicaciones que requieren escalabilidad y solidez.

Con la llegada de aplicaciones cada vez más complejas y la necesidad de procesamiento asincrónico y sin bloqueo, la programación reactiva se ha convertido en un tema candente en el mundo de la programación Java. Se crearon marcos como RxJava, Project Reactor (utilizado por Spring WebFlux) y Akka Streams para facilitar la implementación de sistemas reactivos en Java.

Principios fundamentales

Existen cuatro principios fundamentales de la programación reactiva, conocidos como el Manifiesto Reactivo:

  1. Responsivo: el sistema debe responder de manera oportuna, si es posible, para garantizar una buena experiencia de usuario.
  2. Resiliente: el sistema debe seguir respondiendo incluso ante fallas. Esto se logra mediante replicación, contención, aislamiento y delegación.
  3. Elástico: el sistema debe seguir respondiendo bajo diversas cargas de trabajo. Esto implica diseñar sistemas sin cuellos de botella y capaces de adaptarse dinámicamente.
  4. Controlado por mensajes: el sistema debe utilizar el paso de mensajes asíncrono para establecer un límite entre los componentes, garantizando así el aislamiento, la transparencia de la ubicación y el control de carga.

Secuencias reactivas en Java

Java 9 introdujo la API Reactive Streams en el JDK, que define una especificación para el procesamiento asincrónico de flujos de datos con contrapresión. La contrapresión es un mecanismo que permite a los consumidores controlar la velocidad a la que los productores generan datos, evitando así el agotamiento de los recursos.

La API de Reactive Streams consta de cuatro interfaces principales:

Continúa en nuestra aplicación.

Podrás escuchar el audiolibro con la pantalla apagada, recibir un certificado gratuito para este curso y además tener acceso a otros 5.000 cursos online gratuitos.

O continúa leyendo más abajo...
Download App

Descargar la aplicación

  • Editor: Produce una secuencia de elementos para uno o más Suscriptoress.
  • Suscriptor: Consume los elementos proporcionados por un Editor.
  • Suscripción: Representa un contrato único entre un Editor y un Suscriptor.
  • Procesador: Actúa como Suscriptor y Editor, permitiendo transformaciones de flujos de datos.

Marcos y bibliotecas

Para utilizar la programación reactiva en Java, puedes elegir entre varias bibliotecas y frameworks:

  • RxJava: Una de las bibliotecas más populares para programación reactiva en Java. Proporciona una rica colección de operadores que le permiten componer secuencias asincrónicas y basadas en eventos.
  • Project Reactor: un proyecto Spring que admite programación reactiva para JVM. Lo utiliza Spring Framework, particularmente Spring WebFlux, un módulo para crear aplicaciones web reactivas.
  • Akka Streams: Parte del kit de herramientas de Akka, que permite la construcción de sistemas distribuidos y reactivos. Akka Streams se centra en permitir el procesamiento de flujos de datos de manera eficiente y con contrapresión.

Creación de una aplicación reactiva

Al crear una aplicación reactiva con Java, seguirá un modelo que enfatiza la composición de operaciones asincrónicas y la reacción a eventos. Estos son algunos pasos comunes:

  1. Identifique componentes que puedan beneficiarse de la programación reactiva, como servicios que realizan E/S asincrónicas o manejan flujos de eventos.
  2. Defina sus Editor y Suscriptor y, cuando sea necesario, cree Procesadores para transformar los datos que fluyen entre ellos.
  3. Utilice operadores proporcionados por bibliotecas para filtrar, combinar, transformar y reducir flujos de datos.
  4. Implemente contrapresión para garantizar que su sistema pueda soportar picos de carga sin comprometer la estabilidad.
  5. Pruebe su aplicación bajo diferentes cargas y escenarios de falla para asegurarse de que responda, sea resistente y elástica.

Desafíos y consideraciones

Si bien la programación reactiva ofrece muchos beneficios, también plantea desafíos. La depuración puede resultar más difícil ya que el flujo de ejecución suele ser no lineal y asincrónico. Además, el razonamiento sobre el código puede volverse más complejo debido a la naturaleza implícita del flujo de control y la propagación de eventos.

También es importante considerar si la programación reactiva es adecuada para su aplicación.catión. En sistemas donde la latencia y el rendimiento son críticos, y donde los eventos ocurren a un ritmo elevado o de manera impredecible, la programación reactiva puede ser una excelente opción. Sin embargo, para aplicaciones que no se ajustan a este perfil, el modelo de programación tradicional puede resultar más sencillo y eficaz.

Conclusión

La programación reactiva en Java abre las puertas a la creación de sistemas robustos y escalables que puedan manejar las demandas de las aplicaciones modernas. Con la adopción de marcos y bibliotecas apropiados, y una sólida comprensión de los principios reactivos, los desarrolladores pueden crear aplicaciones que no solo cumplan con las expectativas de los usuarios en términos de rendimiento y capacidad de respuesta, sino que también sean más fáciles de mantener y evolucionar con el tiempo. .

Si planea aprender programación reactiva o incorporarla a sus proyectos Java, comience explorando los recursos y la documentación de las bibliotecas disponibles y practique la creación de pequeños ejemplos para familiarizarse con el estilo de programación. Con dedicación y práctica, estarás en camino de dominar la programación reactiva en Java.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de los siguientes principios NO es uno de los cuatro principios fundamentales de la programación reactiva, según el Manifiesto Reactivo?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente capítulo

El papel de la JVM en el rendimiento de las aplicaciones.

Arrow Right Icon
Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.