Creación de API web modernas, independientes y trazables con .Net Core usando arquitectura de microservicios

Tras llenar el paso 2, donde configuramos nuestros proyectos para producir documentación de forma automática, utilizando NSwag, el tercer y último paso de esta serie de productos va a ser la implementación de una ocupación que nos va a ayudar a depurar nuestras API, singularmente en el momento en que suceden fallas. a lo largo de la tramitación de alguna petición.

Esta ocupación es demasiado esencial para asistirnos a comprender el fluído de peticiones, dándonos un concepto general de de qué forma marcha el sistema. Aparte de asistirnos a detectar ocurrencias de fallos en cualquier nivel de la petición.

Como se enseña en la parte 1 de esta serie de productos, vamos a usar una implementación de OpenTracing llamada API de OpenTracing para .NET. Aparte del UI de Jaeger para la administración de la interfaz donde analizaremos las peticiones.

Para esto, realizaremos los próximos pasos:

1. Disponer la Interfaz de programación de aplicaciones de OpenTracing para .NET, el diseño de usuario de Jaeger y hacer el configurador de OpenTracing

  • entrar al menú Herramientas ⇒ Gestor de packs Nuget ⇒ Consola del gestor de packs;
  • En la ventana de la consola, en el campo Emprendimiento ya establecidoelija el emprendimiento Erp.Compartido;
  • Escriba el comando Bulto de instalación Jaegerpresione Ingresar y espere la instalación.
  • Escriba el comando Bulto de instalación OpenTracing.Contrib.NetCorepresione Ingresar y espere la instalación.

como el emprendimiento Api.Erp.Compartido se se refiere en todos los otros proyectos, instalaremos las dependencias, solo en este emprendimiento.

Ahora, construiremos un procedimiento de extensión para modificar el Rastreo abierto. Conque crea el próximo fichero en el directorio Extensiones del emprendimiento»Api.Erp.Compartido:

…\Api.Erp\Api.Erp.Shared\Extensions\DistributedTracing.cs

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using OpenTracing.Útil;
using Jaeger;
using System.Reflection;
using Jaeger.Samplers;
using OpenTracing;

namespace Api.Erp.Shared.Extensions

2. Habilitación de OpenTracing en el emprendimiento Api.Erp.Clientes del servicio

entrar al fichero comienzo.cs del emprendimiento Api.Erp.Clientes del servicio y realizar los próximos cambios:

…
    public class Startup
    

3. Habilitación de OpenTracing en el emprendimiento Api.Erp.Comercial

entrar al fichero comienzo.cs del emprendimiento Api.Erp.Comercial y llevar a cabo los próximos cambios:

…
    public class Startup
    

4. Habilitación de OpenTracing en el emprendimiento Api.Erp.Fiscal

Ingresa al fichero Startup.cs del emprendimiento Api.Erp.Fiscal y efectúa los próximos cambios:

…
    public class Startup
    

O sea todo cuanto requerimos realizar para producir los registros para nuestras API. No obstante, en contraste a Swagger, la interfaz para monitorear transferencias no se crea en nuestro emprendimiento, sino más bien a través del siguiente emprendimiento Fuente abierta llamada plataforma de trabajo de usuario de Jaeger.

Descarga los ficheros binarios desde este link. Extraiga los ficheros a alguna localización en su PC.

La carpeta extraída contendrá los próximos ficheros:

Acceda a la ruta del directorio en el símbolo del sistema y escriba el comando:

jaeger-todo-en-uno.exe

Ejecute el emprendimiento API y después acceda a la próxima ruta en el navegador:

http://localhost:16686/

dos

Esta es la interfaz de Jaeger.

Para tener un caso de muestra de rastreo real, active el punto y final que devuelve todas y cada una de las facturas emitidas:

3

Regrese a la interfaz del Plataforma de trabajo de usuario de Jaeger. escoja el valor Api.Erp.Fiscal en el campo Servicio y lleve a cabo click en el botón hallar indicios.

4

Elija el primer registro tomado y vea los datos terminados de esta petición:

5

Se expone información fundamental, como el tiempo total de la petición y qué paso efectuó cada microservicio.

Al expandir un factor en el árbol, va a poder ver los datos de cada petición:

6

Otra característica fundamental de Plataforma de trabajo de usuario de Jaeger es la generación de un diagrama que señala la arquitectura general del sistema. Para poder ver este recurso, realice click en el link Arquitectura del sistemay acceda a la pestañita TROZO DE CUERO

Para la petición que nos devolvió los datos de todas y cada una de las facturas en el sistema, tenemos la posibilidad de preguntar a través del Plataforma de trabajo de usuario de Jaegerque a Api.Erp.Fiscal efectuó 2 peticiones al Api.Erp.Comercialque paralelamente logró otras 2 peticiones a la Api.Erp.Clientes del servicio:

7

Con esto concluimos la tercera y última etapa de nuestra serie de productos.

Quisiera que esta serie de productos haya sido útil para asistirlo a calmar una parte del mal de adoptar una arquitectura de microservicios.

Los comentarios son siempre y en todo momento muy bienvenidos. Comparta conmigo su experiencia en la adopción de este patrón arquitectónico poco a poco más adoptado.

Consiga el código terminado de la solución de este repositorio de GitHub.

Links a la serie completa:

Tommy Banks
Estaremos encantados de escuchar lo que piensas

Deje una respuesta

TecnoBreak | Ofertas y Reviews
Logo
Enable registration in settings - general
Shopping cart