warframe madrid example camisas breaker animal hystrix

madrid - ¿Qué es el patrón de mamparo utilizado por Hystrix?



hystrix madrid (1)

Hystrix, una API de Netflix para latencia y tolerancia a fallas en sistemas distribuidos complejos, utiliza la técnica Bulkhead Pattern para el aislamiento de hilos. ¿Puede alguien por favor explicarlo?


General

En general, el objetivo del patrón de mamparo es evitar fallas en una parte de un sistema para derribar todo el sistema. El término proviene de barcos donde un barco está dividido en compartimentos herméticos separados para evitar una sola brecha en el casco para inundar todo el barco; solo inundará un mamparo.

Las implementaciones del patrón de mamparo pueden tomar muchas formas dependiendo del tipo de fallas de las que desea proteger el sistema. Solo discutiré el tipo de fallas que Hystrix maneja en esta respuesta.

Creo que el patrón de mamparo fue popularizado por el libro Release It! por Michael T. Nygard.

Lo que Hystrix resuelve

La implementación de mamparo en Hystrix limita el número de llamadas simultáneas a un componente . De esta manera, el número de recursos (generalmente subprocesos) que está esperando una respuesta del componente es limitado.

Suponga que tiene una aplicación multiproceso basada en solicitudes (por ejemplo, una aplicación web típica) que utiliza tres componentes diferentes, A , B y C. Si las solicitudes al componente C comienzan a bloquearse, eventualmente todos los hilos de manejo de solicitudes se suspenderán esperando una respuesta de C. Esto haría que la aplicación no responda por completo. Si las solicitudes a C se manejan lentamente, tenemos un problema similar si la carga es lo suficientemente alta.

La implementación de Hystrix del patrón de mamparo limita el número de llamadas simultáneas a un componente y habría guardado la aplicación en este caso. Supongamos que tenemos 30 subprocesos de manejo de solicitudes y hay un límite de 10 llamadas simultáneas a C. Luego, como máximo 10 hilos de manejo de solicitudes pueden bloquearse cuando se llama a C , los otros 20 hilos aún pueden manejar solicitudes y usar los componentes A y B.

Enfoques de Hystrix

Hystrix ''tiene dos enfoques diferentes para el mamparo, aislamiento de hilos y aislamiento de semáforos.

Aislamiento de hilos

El enfoque estándar es entregar todas las solicitudes al componente C a un grupo de subprocesos separado con un número fijo de subprocesos y sin cola de solicitudes (o una pequeña).

Aislamiento de semáforos

El otro enfoque es hacer que todas las personas que llaman adquieran un permiso (con 0 tiempo de espera) antes de las solicitudes a C. Si no se puede obtener un permiso del semáforo, las llamadas a C no se transfieren.

Las diferencias

La ventaja del enfoque del grupo de subprocesos es que las solicitudes que se pasan a C pueden agotar el tiempo de espera, algo que no es posible cuando se usan semáforos.