se logra hablar de ideas con Zookeeper bloqueo distribuido

Cuando la entrevista fue un martillo jefes profundamente, que "hablar ** acerca de las ideas para lograr bloqueo distribuido con Zookeeper **"?

Si no está familiarizado con los estudiantes zookeeper, será sin duda la mente de sobresalto, el aumento de la presión arterial, el habla tartamudez, el importe de la cantidad de ...... ....... ...... Cantidad

Entrevistador: ¿Usted sabe lo que quiero decir? A continuación, la entrevista básicamente enfríe.

Suponemos que A y B al mismo tiempo para competir en un recurso crítico, a continuación, con el fin de asegurar la consistencia de los datos o evitar los problemas causados ​​por la competencia por los recursos, es necesario bloqueo distribuido.

Zookeeper bloqueo distribuido se implementa como sigue:

> recursos necesarios 1.A R, se aplicará un bloqueo para ZK, esta cerradura de bloqueo de la acumulación nodo maestro debajo (** ** nodo de orden temporal, el nodo es único). Un juez de bloqueo antes de la cola de bloqueo no existe otro bloqueo, por lo que si él es el primero a añadir en este momento ZK puede ser un nombre conocido como 00001-xxx.

> R 2.B también quieren recursos , sino también para aplicar el bloqueo, pero se encontró frente a un xxx-00001, y sólo añadió un vigilante de seguimiento de la primera cerradura, mientras ZK a B con nombre denominada xxx-00002, etc. después de cerradura xxx-00001 y luego utilizarlo para fines .
>
> 3. Más tarde el mismo CDEF, se alinearon detrás.

Sin embargo, el problema es más? Y no!

En el proceso descrito anteriormente, el proceso se repite un gran número de procesos que compiten corriendo bloqueo distribuido, y la gran mayoría de los resultados operativos se juzgan que no era el número de nodo más pequeño, que sigue esperando una notificación - esto es obviamente no de manera muy científica .

El procedimiento de contención de bloqueo distribuido, su lógica de núcleo que comprende: * todos los nodos para determinar si son el número más pequeño **. Por lo tanto, es fácil pensar es el creador de cada nodo sólo tiene que concentrarse en ese nodo más pequeño que su número.

Así que cuando el clúster empleado del zoológico es lo suficientemente grande, el proceso anterior, que puede conducir a la cría ** **.

> Solución:
> (1) el proceso de bloqueo en la competencia, se dará cuenta de que no son todos los nodos hijos de los más pequeños, lo que indica que todavía no tuvo la cerradura.

> (2) En este caso el cliente necesita para encontrar el nodo es más pequeño que su propia, a continuación, llama al método exist (), y registrar detectores de eventos.

> Después se retira (3) Cuando este nodo es de interés, el cliente recibirá una notificación correspondiente. Esta vez que el cliente necesita para llamar de nuevo método ( "Locknode") getChildren para obtener todos los nodos secundarios que se han creado para asegurarse de que está hecho el nodo más pequeño,
 

Publicado 27 artículos originales · ganado elogios 0 · Vistas 3243

Supongo que te gusta

Origin blog.csdn.net/u011536031/article/details/104781599
Recomendado
Clasificación