Teoría distribuida: Teoría CAP Teoría BASE



inserte la descripción de la imagen aquí

Resolver problemas de transacciones distribuidas requiere algunos conocimientos básicos de sistemas distribuidos como guía teórica.

1. Teorema de la PAC

Consistencia: Cuando un usuario accede a cualquier nodo en el sistema distribuido, los datos obtenidos deben ser consistentes Disponibilidad: Cuando
un usuario accede a cualquier nodo saludable en el clúster, debe poder obtener una respuesta en lugar de tiempo de espera o rechazo. Partición:
debido a fallas en la red u otras razones, algunos nodos en el sistema distribuido pierden la conexión con otros nodos, formando una partición independiente. Tolerancia (tolerancia a fallas):
cuando ocurre una partición en el clúster, todo el sistema debe continuar brindando servicios externos
====== Conclusión: CP: consistencia fuerte, disponibilidad débil (sacrificando la disponibilidad de algunas máquinas para garantizar la consistencia de los datos) AP: gran disponibilidad, consistencia débil (sacrificando la consistencia, asegurando la disponibilidad)

En 1998, Eric Brewer, informático de la Universidad de California, propuso que existen tres indicadores para los sistemas distribuidos.

  • Consistencia
  • Disponibilidad
  • Tolerancia de partición (tolerancia a fallos de partición)

inserte la descripción de la imagen aquí

Sus primeras letras son C, A, P.

Eric Brewer dijo que estos tres indicadores no se pueden lograr al mismo tiempo. Esta conclusión se llama el teorema CAP.

1.1 Coherencia

Consistencia: Cuando un usuario accede a cualquier nodo del sistema distribuido, los datos obtenidos deben ser consistentes.

Por ejemplo, ahora contiene dos nodos, donde los datos iniciales son consistentes:

inserte la descripción de la imagen aquí
Cuando modificamos los datos de uno de los nodos, los datos de los dos tienen una diferencia:

inserte la descripción de la imagen aquí

Para mantener la coherencia, se debe lograr la sincronización de datos del nodo01 al nodo02:

inserte la descripción de la imagen aquí

1.2 Disponibilidad

Disponibilidad (disponibilidad): un usuario que acceda a cualquier nodo en buen estado del clúster debe poder obtener una respuesta en lugar de tiempo de espera o rechazo.

Como se muestra en la figura, en un clúster con tres nodos, puede obtener una respuesta oportuna cuando visita cualquiera de ellos:
inserte la descripción de la imagen aquí
cuando no se puede acceder a algunos nodos debido a una falla en la red u otras razones, significa que el nodo no está disponible:

inserte la descripción de la imagen aquí

1.3 Tolerancia a fallos de partición


Partición : debido a fallas en la red u otras razones, algunos nodos en el sistema distribuido pierden la conexión con otros nodos, formando una partición independiente.

inserte la descripción de la imagen aquí

Tolerancia (tolerancia a fallas) : cuando ocurre una partición en el clúster, todo el sistema debe continuar brindando servicios externos


1.4 Contradicción

En un sistema distribuido, no se puede garantizar que la red entre los sistemas sea 100 % saludable, y debe haber fallas, y los servicios deben garantizarse externamente. Por lo tanto, la tolerancia a la partición es inevitable.

Los problemas surgen cuando los nodos reciben nuevos cambios de datos:

inserte la descripción de la imagen aquí


Si desea garantizar la coherencia en este momento , debe esperar a que la red se recupere. Una vez completada la sincronización de datos, todo el clúster proporcionará servicios al mundo exterior. Los servicios están bloqueados y no disponibles.

Si desea garantizar la disponibilidad en este momento , no puede esperar a que la red se recupere, entonces habrá inconsistencias de datos entre el nodo01, el nodo02 y el nodo03.

Es decir, en el caso de que deba aparecer P, sólo se puede realizar uno entre A y C.


2. Teoría BÁSICA


La teoría BASE es una solución a CAP, que incluye tres ideas:

  • Basically Available (básicamente disponible) : cuando un sistema distribuido falla, se le permite perder parte de su disponibilidad, es decir, garantizar que el núcleo esté disponible.
  • Soft State (estado suave) permite un estado intermedio dentro de un cierto período de tiempo, como un estado inconsistente temporal.
  • Eventualmente consistente : aunque no se puede garantizar una fuerte consistencia, la consistencia de los datos finalmente se logrará después de que finalice el estado suave.

3. Ideas para resolver transacciones distribuidas

El mayor problema de las transacciones distribuidas es la consistencia de cada subtransacción, por lo tanto, podemos aprender del teorema CAP y la teoría BASE, hay dos soluciones:

  • Modo AP: cada subtransacción se ejecuta y envía por separado, lo que permite inconsistencias en los resultados y luego toma medidas correctivas para restaurar los datos para lograr la consistencia final.

  • Modo CP: cada subtransacción se espera una a la otra después de la ejecución, se compromete al mismo tiempo y retrocede al mismo tiempo para alcanzar un consenso sólido. Sin embargo, durante el proceso de espera de la transacción, se encuentra en un estado de disponibilidad débil.

Pero no importa el modo que sea, es necesario comunicarse entre sí entre las transacciones del subsistema y coordinar el estado de la transacción, es decir, se requiere un coordinador de transacciones (TC) :

inserte la descripción de la imagen aquí

Las transacciones del subsistema aquí se denominan transacciones de sucursal , las transacciones de sucursal asociadas juntas se denominan transacciones globales .


4. Extensión


ES está basado en CP. Si falla un nodo en el clúster de ES, se eliminará el nodo defectuoso y los datos se redistribuirán a otros nodos. Este proceso no está disponible para el clúster para garantizar la coherencia de los datos. Por lo tanto, es de baja disponibilidad y alta consistencia.

Eureka es AP.

Nacos admite tanto CP como AP (AP predeterminado).



inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_60915009/article/details/131391720
Recomendado
Clasificación