La Red de Conocimientos Pedagógicos - Conocimientos de formación/capacitación - Capacitación en diseño de Beida Jade Bird: ¿Qué problemas pueden existir en el funcionamiento del software de la arquitectura de microservicios?

Capacitación en diseño de Beida Jade Bird: ¿Qué problemas pueden existir en el funcionamiento del software de la arquitectura de microservicios?

El desarrollo de arquitectura de microservicios es un método de desarrollo de software muy común en el campo de la programación y el desarrollo de software. Hoy veremos los problemas que pueden surgir durante el funcionamiento del software del sistema basado en la arquitectura de microservicios.

Parte 1: ¿Qué es Hystrix? 1.1: Explicación básica Hystrix fue abierto por primera vez por Netflix (todos los que han visto series de televisión estadounidenses saben que es una empresa gigante que produce series de televisión estadounidenses). Más tarde, Spring Cloud Hystrix implementó una serie de funciones de protección de servicios, como disyuntores e hilos). aislamiento basado en este marco. El objetivo de este marco es proporcionar una mayor tolerancia a fallas para retrasos y fallas mediante el control de nodos que acceden a sistemas, servicios y bibliotecas de terceros remotos.

Hystrix tiene funciones poderosas como degradación de servicios, fusión de servicios, aislamiento de subprocesos y señales, almacenamiento en caché de solicitudes, fusión de solicitudes y monitoreo de servicios.

Actúa como un mecanismo de protección para microservicios, evitando que una unidad falle, provocando la propagación de dependencias y, finalmente, provocando el colapso de todo el sistema.

1.2: Concepto de disyuntor El disyuntor en sí es un dispositivo de conmutación que se utiliza para proteger el circuito de sobrecargas y cuando se produce un cortocircuito en el circuito.

El "disyuntor" puede cortar las fallas a tiempo para evitar consecuencias graves como sobrecarga, calor o incluso incendio.

En arquitecturas distribuidas, el patrón de disyuntor juega un papel similar.

Cuando falla un servicio, se devuelve una respuesta de error a la persona que llama a través del monitoreo de fallas del disyuntor, en lugar de colgar el hilo durante mucho tiempo y esperar indefinidamente.

De esta forma, los subprocesos no estarán ocupados durante mucho tiempo debido a servicios defectuosos y evitarán la propagación de fallas en el sistema distribuido.

Dos: Hystrix resuelve el problema del tiempo de espera 2.1: Problema Supongamos que nuestra interfaz proporciona la función para que los usuarios consulten pedidos. Primero, la solicitud se asigna al OrderController y el controlador obtiene la información del pedido llamando al servicio orderService. La interfaz pasa dos parámetros: uno es la identificación del pedido y el otro es la identificación del usuario. OrderService necesita llamar al servicio de usuario a través de la identificación del usuario, obtener la información relevante del usuario y devolverla al servicio de pedidos para recopilar la información. Suponiendo que es a través / sugerencia, después de que el comando emite una solicitud, pasa por una serie de juicios, el orden es si se accede al caché, si el disyuntor está abierto, si el grupo de subprocesos está lleno, y luego Empezamos a solicitar realmente el procesamiento de dependencia del servicio del código que escribimos. Ese es el método Hystrix.run. Si alguno de estos nodos tiene un error o genera una excepción, volverá al método alternativo para degradar el servicio. Cuando se complete la degradación, devolverá los resultados a la persona que llama internacionalmente para una serie de procesamiento.