Explicación detallada de los atributos del comando Spring Cloud Hystrix

Prefacio

Cuando usamos springcloud, inevitablemente usaremos Hystrix. Hagamos una nota sobre la configuración de atributos;

Configuración

Existen principalmente los siguientes tipos de configuración de atributos:

El prefijo de configuración es hystrix.command.default

Configuración de ejecución:

  • execution.isolation.strategy : Este atributo se utiliza para establecer la estrategia de aislamiento de ejecución, hay dos opciones de la siguiente manera:

    • THREAD : a través de la estrategia de aislamiento del grupo de subprocesos, se ejecuta en un subproceso separado y su límite de concurrencia está limitado por el número de subprocesos en el grupo de subprocesos (predeterminado)
    • SEMAPHONE : A través de la estrategia de aislamiento de semáforos, se ejecuta en el hilo de llamada y su límite de concurrencia está limitado por el recuento de semáforos.
  • execution.isolation.thread.timeoutInMilliseconds : Esta propiedad se utiliza para configurar el tiempo de espera de ejecución de HystrixCommand, la unidad es milisegundos, el valor predeterminado es 1000, más allá de esta configuración de tiempo, Hystrix ejecutará el comando como TIMEOUT e ingresará a la lógica de procesamiento de degradación del servicio
  • execution.timeout.enabled : esta propiedad se usa para configurar si la ejecución de HystrixCommand comienza el tiempo de espera, el valor predeterminado es verdadero, si se establece en falso, la configuración de la propiedad execution.isolation.thread.timeoutInMilliseconds no funcionará
  • execution.isolation.thread.interruptOnTimeout : esta propiedad se utiliza para configurar si HystrixCommand debe interrumpirse cuando se agota el tiempo de ejecución de HystrixCommand, el valor predeterminado es verdadero
  • execution.isolation.semaphore.maxConcurrentRequests : Cuando la estrategia de aislamiento utiliza un semáforo, esta propiedad se utiliza para configurar el tamaño del semáforo. Cuando el número máximo de solicitudes concurrentes alcanza el valor establecido, las solicitudes posteriores serán rechazadas

colocación de reserva:

  • fallback.enabled : esta propiedad se utiliza para establecer si la política de degradación del servicio está habilitada, el valor predeterminado es verdadero, si se establece en falso, cuando la solicitud falla o se rechaza, no se llamará a HystrixCommand.getFallback () para ejecutar la lógica de degradación del servicio

Configuración del CircuitBreaker:

  • circuitBreaker.enabled : este atributo se usa para determinar si se debe usar un interruptor automático para rastrear sus indicadores de salud y solicitudes de fusión cuando falla el comando de solicitud de servicio, el valor predeterminado es verdadero
  • circuitBreaker.requestVolumeThreshold : este atributo se utiliza para establecer el número mínimo de solicitudes de interruptores en la ventana de tiempo continuo. Por ejemplo: con el valor predeterminado de 20, si solo se reciben 19 solicitudes dentro de la ventana de tiempo continuo (el valor predeterminado es 10 segundos), incluso si las 19 solicitudes fallan, el disyuntor no se abrirá.
  • circuitBreaker.sleepWindowInMilliseconds : esta propiedad se utiliza para establecer la ventana de tiempo de reposo después de que se abre el disyuntor. El valor predeterminado es 5000 milisegundos. Una vez finalizada la ventana de tiempo de reposo, el disyuntor se establecerá en el estado "medio abierto" y se probará el comando de solicitud de fusión. Si aún falla, el disyuntor continuará en el estado "abierto" y, si tiene éxito, se establecerá en " Discapacitado.
  • circuitBreaker.errorThresholdPercentage : este atributo se utiliza para establecer la condición de porcentaje de error para abrir el interruptor automático. Por ejemplo, cuando el valor predeterminado es 50, significa que en la ventana de tiempo continuo, si el número de solicitudes excede el umbral de circuitBreaker.requestVolumeThreshold, si el porcentaje del número de solicitudes de error excede 50, el interruptor automático se establece en el estado "abierto", de lo contrario Póngalo en el estado "apagado".
  • CircuitBreaker.forceOpen : este atributo se utiliza para configurar el interruptor automático para que sea forzado a entrar en el estado "abierto", y todas las solicitudes serán rechazadas. Este atributo tiene prioridad sobre circuitBreaker.forceClosed
  • CircuitBreaker.forceClosed : este atributo se utiliza para configurar el interruptor automático para que sea forzado a entrar en el estado "cerrado", y se recibirán todas las solicitudes.

Configuración de métricas:

Esta propiedad de configuración está relacionada con la captura de información del indicador durante la ejecución de HystrixCommand y HystrixObservableCommand

  • metrics.rollingStats.timeInMilliseconds : este atributo se usa para establecer la duración de la ventana de tiempo variable, en milisegundos. Este tiempo se usa para la duración de la información recopilada cuando el interruptor automático juzga el estado. El valor predeterminado es 10000. Cuando el valor del disyuntor recopila información del indicador, se dividirá en varios "cubos" de acuerdo con la duración de la ventana de tiempo establecida para acumular varios valores métricos, y cada "bloque" registra los indicadores recopilados durante un período de tiempo.
  • metrics.rollingStats.numBuckets : este atributo se utiliza para establecer el número de "cubos" cuando se muestra la información del indicador estadístico de la ventana de tiempo; el valor predeterminado es 10. La configuración del parámetro metrics.rollingStats.timeInMilliseconds debe ser divisible por este parámetro; de lo contrario, se lanzará una excepción.

    metrics.rollingPercentile.enabled: este atributo se usa para establecer si se deben usar percentiles para rastrear y calcular el retraso de la ejecución del comando. El valor predeterminado es verdadero. Si se establece en falso, todas las estadísticas de resumen devolverán -1

  • metrics.rollingPercentile.timeInMilliseconds : este atributo se utiliza para establecer la duración de la ventana móvil para las estadísticas de percentiles, unidad: milisegundos, el valor predeterminado es 60000
  • metrics.rollingPercentile.numBuckets : este atributo se usa para establecer el número de "cubos" que se usan en la ventana de estadísticas de percentiles, el valor predeterminado es 6
  • metrics.rollingPercentile.bucketSize : este atributo se usa para establecer el número máximo de ejecuciones retenidas en cada "contenedor" durante el proceso de ejecución. Si el número de ejecuciones que excede el valor establecido ocurre en la ventana de tiempo continuo, reinicie desde la posición inicial Escriba, por ejemplo: establecido en 100, la ventana móvil es de 10 segundos, si se producen 500 ejecuciones en un "depósito" en 10 segundos, solo las estadísticas de las últimas 100 ejecuciones se guardan en el "depósito", el valor predeterminado es 100
  • metrics.healthSnapshot.intervalInMilliseconds : este atributo se usa para establecer el tiempo de espera del intervalo para recopilar instantáneas de salud (porcentajes de éxito y error solicitados) que afectan el estado del interruptor automático, el valor predeterminado es 500

requestContext configuración:

  • requestCache.enabled : este atributo se utiliza para configurar si se habilita el almacenamiento en caché de solicitudes
  • requestLog.enabledg : este atributo se usa para establecer si la ejecución de HystrixCommand y los eventos se imprimen en HystrixRequestLog, el valor predeterminado es verdadero

El prefijo de configuración es hystrix.collapser.default

  • maxRequestsInBatch : este atributo se utiliza para establecer el número máximo de solicitudes permitidas en un lote de combinación de solicitudes, el valor predeterminado es Integer.MAX_VALUE
  • timerDelayInMilliseconds : este atributo se utiliza para establecer el tiempo de retardo de cada comando en el proceso por lotes, en milisegundos, el valor predeterminado es 10.
  • requestCache.enabled : este atributo se utiliza para establecer si se habilita el almacenamiento en caché de solicitudes durante el procesamiento por lotes, el valor predeterminado es verdadero

El prefijo de configuración es hystrix.threadpool.default

  • coreSize : este atributo se utiliza para establecer el número de subprocesos centrales en el grupo de subprocesos de comando. Este valor es la ejecución máxima simultánea de comandos. El valor predeterminado es 10
  • maxQueueSize : este atributo se usa para establecer el tamaño máximo de cola del grupo de subprocesos. Cuando se establece en -1, el grupo de subprocesos usará la cola implementada por SynchronousQueue; de ​​lo contrario, usará la cola implementada por LinkedBlockingQueue, el valor predeterminado es -1
  • queueSizeRejectionThreshold : este atributo se utiliza para establecer el umbral de rechazo para la cola. Las solicitudes se pueden rechazar incluso si la cola no alcanza el valor máximo. Este atributo es principalmente un complemento de la cola LinkedBlockingQueue. El valor predeterminado es 5. Cuando el atributo maxQueueSize es -1, este atributo no es válido
  • metrics.rollingPercentile.timeInMilliseconds : este atributo se utiliza para establecer la duración de la ventana móvil de las estadísticas del grupo de subprocesos, unidad: milisegundos, el valor predeterminado es 10000
  • metrics.rollingPercentile.numBuckets : este atributo se usa para establecer el número de "cubos" que se usan en la ventana de estadísticas del grupo de subprocesos, el valor predeterminado es 10

(Terminar)

Supongo que te gusta

Origin blog.csdn.net/qq_36850813/article/details/102816065
Recomendado
Clasificación