Aplicación del disyuntor Spring Cloud
Entorno: Springboot2.3.12.RELEASE + cloud-netflix-hystrix2.2.10.RELEASE
El disyuntor SpringCloud proporciona abstracción en diferentes implementaciones de disyuntores. Proporciona una API coherente para su uso en todas las aplicaciones, lo que permite a los desarrolladores elegir la implementación del disyuntor que mejor se adapte a las necesidades de la aplicación.
Tipos de disyuntores admitidos:
Para crear disyuntores en código, puede utilizar la API de fábrica de disyuntores. Cuando incluye el iniciador Spring Cloud Circuit Breaker en su classpath, se crea automáticamente un bean que implementa esta API. A continuación se proporciona un ejemplo muy simple del uso de esta API:
Determine qué disyuntor específico usar introduciendo las siguientes dependencias diferentes
Los cinco disyuntores anteriores son métodos de implementación diferentes, usted puede introducirlo según sea necesario.
Aquí tomamos a Hystrix como ejemplo
Introducir dependencias
Definir servicios con función de disyuntor
Interfaz del controlador
El método CircuitBreakerFactory#create crea una instancia de CircuitBreaker
De acuerdo con el CLASSPATH actual estamos usando Hystrix, por lo que la fábrica utilizada aquí es:
Clase HystrixCircuitBreakerFactory
Parámetros genéricos: Setter se usa para configurar la información de configuración relacionada con Hystrix (aquí se usa principalmente para vincular CommandKey y Setter), y HystrixConfigBuilder se usa para construir objetos HystrixCommand.Setter.
Al ejecutar el método HystrixCircuitBreakerFactory#configure:
La subclase específica del disyuntor implementa HystrixCircuitBreakerFactory
Ahora que la fábrica de disyuntores está disponible, el siguiente paso es crear la subclase específica a través de la fábrica. El objeto disyuntor
¿Qué se ejecuta cuando el método cbf().create("demo-slow") se ejecuta a través del código anterior?
Lo que se crea arriba es el disyuntor HystrixCircuitBreaker. Cuando se ejecuta el método de ejecución:
¡Listo! ! !
Seguir + adelante
Comparación entre Sentinel y Hystrix
SpringCloud Hystrix implementa una aplicación de aislamiento de recursos
SpringCloud Gateway aplica la función de limitación de corriente de Hystrix automáticamente Explicación detallada de la definición del filtro
Anti-reinicio de sesión de Spring Boot Security y recuento total en línea
Aplicación del marco de reintento Spring Retry
Springboot mybatis jpa implementa lectura separación de escritura
¿Conoce los objetos contenedores Spring BeanFactory y ApplicationContext?