Comprende la clasificación y teoría de la consistencia en cinco minutos
1. Fuerte coherencia
Este nivel de coherencia está más en línea con la intuición del usuario. Lo que requiere que el sistema escriba será lo que se lea. Sin embargo, la experiencia del usuario es buena. , la implementación suele tener un gran impacto en el rendimiento del sistema.
2. Coherencia débil
Este nivel de coherencia impide que el sistema pueda leer el valor escrito inmediatamente después de que la escritura sea exitosa, ni se promete qué tan pronto estarán disponibles los datos. Se puede lograr coherencia, pero haremos todo lo posible para garantizar que los datos puedan alcanzar un estado coherente después de un cierto nivel de tiempo (como el segundo nivel).
3. Coherencia final
La coherencia final es un caso especial de coherencia débil. El sistema garantizará que se pueda alcanzar un estado de coherencia de datos dentro de un cierto período de tiempo. La razón por la que la consistencia final se menciona por separado aquí es porque es un modelo de consistencia muy respetado en consistencia débil, y también es un modelo muy respetado en la industria por la consistencia de datos en grandes sistemas distribuidos.
Varios problemas en entornos distribuidos
La arquitectura de sistemas distribuidos ha estado acompañada de muchos problemas y desafíos desde su aparición:
1. Comunicación anormal
En el proceso de evolución de centralizado a distribuido, inevitablemente se introducen factores de red. Debido a la falta de confiabilidad de la red en sí, también se introducen problemas adicionales. Los sistemas distribuidos requieren comunicación de red entre varios nodos, por lo que cada comunicación de red va acompañada del riesgo de indisponibilidad de la red. La falta de disponibilidad de fibras ópticas, enrutadores, DNS y otros dispositivos o sistemas de hardware hará que el sistema distribuido final falle sin problemas. comunicación en red. Además, incluso si la comunicación de red entre varios nodos en el sistema distribuido puede desarrollarse normalmente, el retraso será mayor que el del funcionamiento de una sola máquina. Generalmente, creemos que en la arquitectura informática moderna, la latencia del acceso a la memoria de una sola máquina es del orden de nanosegundos (normalmente 10 ns), mientras que la latencia de una comunicación de red normal es de alrededor de 0,1 ~ 1 ms (equivalente a 105 veces el acceso a la memoria). latencia). Una diferencia de retraso tan grande también afectará el proceso de envío y recepción de mensajes, por lo que la pérdida y el retraso de mensajes se han vuelto muy comunes.
2. Partición de red
Cuando se producen condiciones anormales en la red, el retraso de la red entre algunos nodos en el sistema distribuido continúa aumentando, lo que finalmente conduce a la falla de todos los nodos que forman parte. En el sistema distribuido, solo algunos nodos pueden comunicarse normalmente entre sí, mientras que otros no pueden; a este fenómeno lo llamamos partición de red. Cuando se producen particiones de red, aparecerán pequeños grupos locales en el sistema distribuido. En casos extremos, estos pequeños grupos locales completarán de forma independiente funciones que originalmente requerían que todo el sistema distribuido completara, incluido el procesamiento de transacciones de datos. sistema distribuido. La coherencia presenta un desafío muy grande.
3. Tres estados
Para los dos puntos anteriores, hemos aprendido que en un entorno distribuido, pueden ocurrir varios problemas en la red, por lo que cada vez que el sistema distribuido Solicita y responde Tienen un concepto único de tres estados, a saber, éxito, fracaso y tiempo de espera. En un sistema independiente tradicional, después de llamar a una función, la aplicación puede obtener una respuesta muy clara: éxito o fracaso. En un sistema distribuido, debido a que la red no es confiable, aunque en la mayoría de los casos la comunicación de la red puede recibir una respuesta de éxito o falla, cuando ocurre una anomalía en la red, puede ocurrir un tiempo de espera. Generalmente hay dos situaciones:
<. p> (1) Por motivos de red, la solicitud no se envió correctamente al receptor, pero el mensaje se perdió durante el proceso de envío.(2) Después de que el receptor recibió con éxito la solicitud, se procesó, pero durante el proceso de enviar la respuesta al remitente, se produjo la pérdida del mensaje.
Cuando se produce dicho tiempo de espera, el iniciador de la comunicación de red no puede determinar si la solicitud actual se ha procesado correctamente.
4. Fallo de nodo
El fallo de nodo es otro problema común en un entorno distribuido. Se refiere al tiempo de inactividad o "zombi" de los nodos del servidor que conforman el sistema distribuido. Fenómeno, en términos generales por experiencia, cada nodo tiene el potencial de fallar y sucede todos los días.
Teoría CAP
Una teoría clásica de sistemas distribuidos.
La teoría CAP nos dice: Es imposible que un sistema distribuido cumpla con los tres requisitos básicos de coherencia (C: coherencia), disponibilidad (A: disponibilidad) y tolerancia de partición (P: tolerancia de partición) al mismo tiempo. como máximo dos de ellos al mismo tiempo.
Teoría BASE
BASE es la abreviatura de las tres frases Básicamente disponible, Estado suave y Eventualmente consistente. La teoría BASE es el resultado del equilibrio entre consistencia y disponibilidad en CAP. Se deriva del resumen de prácticas distribuidas en sistemas de Internet a gran escala y evoluciona gradualmente sobre la base del teorema CAP. La idea central de la teoría BASE es: incluso si no se puede lograr una coherencia sólida, cada aplicación puede adoptar métodos apropiados de acuerdo con sus propias características comerciales para lograr la coherencia final del sistema.