¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Cree microservicios tolerantes a errores

Resumen

Este code pattern para desarrolladores demuestra cómo implementar una aplicación de Open Liberty con Eclipse MicroProfile en Kubernetes. Usa Prometheus para raspar métricas de aplicaciones y la plataforma Grafana para la analítica y la supervisión. La aplicación usa la versión 2.1 de MicroProfile y se centra en la tolerancia a errores, que es una de las funciones de esa versión.

Descripción

Todos los microservicios fallan, por lo que es importante crear microservicios resilientes. La Tolerancia a Errores de Eclipse MicroProfile brinda una solución sencilla, configurable y flexible para crear un microservicio tolerante a errores. Ofrece las siguientes políticas tolerantes a errores:

  • Timeout: Define la duración de un tiempo de espera excedido.
  • Retry: Define un criterio sobre cuándo reintentar.
  • Fallback: Brinda una solución alternativa para una ejecución que falla.
  • Bulkhead: Aisla los fallos en una parte del sistema mientras el resto del sistema puede seguir funcionando.
  • CircuitBreaker: Ofrece una forma de parar rápidamente mediante la ejecución automática del fallo para evitar que el sistema se sobrecargue o que los clientes sufran un tiempo de espera excedido o una espera infinita.
  • Asynchronous: Invoca la operación de forma asíncrona.

El principal diseño es para separar la ejecución y su lógica. La ejecución se puede configurar con políticas tolerantes a errores.

MicroProfile es una definición de plataforma básica que optimiza Enterprise Java para una arquitectura de microservicios y ofrece portabilidad de la aplicación entre múltiples tiempos de ejecución de MicroProfile. Desde el lanzamiento de MicroProfile 1.2, la función de las métricas ya está incorporada en la plataforma.

La aplicación de muestra utilizada es una aplicación web para gestionar una conferencia y se basa en un número de microservicios discretos. El frontend está escrito en Angular; los microservicios de respaldo están en Java. Todos se ejecutan sobre Open Liberty, en contenedores Docker gestionados por Kubernetes. Se basa en una aplicación demo del equipo de la plataforma de MicroProfile. Se convirtió la aplicación de muestra bifurcada para usar Open Liberty y Microprofile Metrics, que forma parte de la versión 2.1 de Microprofile.

Flujo

flujo

  1. Crear un servicio de Kubernetes en IBM Cloud.
  2. Desplegar todos los microservicios en el clúster de Kubernetes.
  3. Desplegar un servidor Prometheus como un servicio en el clúster de Kubernetes.
  4. Desplegar Grafana como un servicio en el clúster de Kubernetes.
  5. Utilizar la puerta de enlace de Ingress para exponer la aplicación web desde el clúster de Kubernetes.
  6. El usuario accede a la aplicación web a través del navegador.

Instrucciones

¿Listo para comenzar? Consulte README para conocer las instrucciones paso a paso.

Sanjeev Ghimire