Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Qué problemas pueden surgir al ejecutar software utilizando una arquitectura de microservicios?

¿Qué problemas pueden surgir al ejecutar software utilizando una 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 qué problemas pueden ocurrir durante el funcionamiento del software del sistema basado en la arquitectura de microservicios.

1: ¿Qué es Hystrix?

1.1: Explicación básica

Hystrix fue abierto por primera vez por Netflix (cualquiera que haya visto series de televisión estadounidenses sabe que es un gigante estadounidense de producción de cine y televisión). Más tarde, SpringCloudHystrix se implementó). interrupción de circuitos basada en este marco Con una serie de funciones de protección de servicios, como el aislamiento de servidores y subprocesos, el objetivo de este marco es controlar el acceso a sistemas remotos, servicios y nodos de biblioteca de terceros, proporcionando así una tolerancia a fallas más sólida para los retrasos. y fracasos. 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 falle una sola unidad.

1.1. La dependencia de los microservicios provocará la propagación de fallos y, finalmente, la parálisis de todo el sistema.

1.2: Concepto de disyuntor

Un disyuntor en sí es un dispositivo de conmutación utilizado para proteger los circuitos de sobrecargas cuando se produce un cortocircuito eléctrico en el circuito. El "disyuntor" puede cortar fallas a tiempo para evitar consecuencias graves como sobrecarga, calentamiento e incluso incendio. En la arquitectura distribuida, el modelo de disyuntor también desempeña un papel similar. Cuando falla un servicio, el monitoreo de fallas a través del "disyuntor". Devuelve una respuesta de error a la persona que llama en lugar de dejar que el hilo se cuelgue durante mucho tiempo y espere indefinidamente. Esto evita que el hilo esté ocupado durante mucho tiempo debido a fallas del servicio y evita 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 y que la primera solicitud se asigna al OrderController, controlador Al llamar al servicio orderService para obtener información del pedido, el front-end pasa dos parámetros: uno es la identificación del pedido, uno es la identificación del usuario, uno es la identificación del usuario, uno es la identificación del usuario, el otro es la identificación del usuario, uno es el ID de usuario y el otro es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno. es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario, uno es el ID de usuario y el otro es el ID de usuario. OrderService necesita llamar al servicio de usuario a través del ID de usuario para obtener la información del usuario y devolverla al. servicio de pedidos para ensamblar la información Supongamos que las operaciones de solicitud y devolución están desacopladas a través de mand. En un ejemplo específico, Hystrix dependerá de los servicios para observar, devolver un objeto observado a través de la llamada command.toObservable, iniciar un evento y luego. Utilice el suscriptor para procesar el evento recibido. Nan Shaobei Jade Bird sugirió realizar solicitudes a través de comandos. Después de eso, se realizará una serie de juicios. El orden de juicio es si el caché está activado, si el disyuntor está encendido y si. el grupo de subprocesos está lleno, luego comenzará a procesar los servicios que realmente dependen de la solicitud en el código que escribimos, que es el método Hystrix.run. Si ocurre un error o se produce una excepción en cualquiera de los nodos. volver al método alternativo. Volverá al método alternativo para la degradación del servicio. Cuando se complete el proceso de degradación, devolverá el resultado a la persona que llama después de una serie de procesos.