Entrevistador: ¿Qué es Zookeeper, cuáles son sus características y escenarios de uso?

¡Hola! Hola a todos, soy Xiaoqi, un programador poco confiable.
Xiaoqi tiene la intención de compartir algunas técnicas de una manera relajada y divertida. Si crees que has aprendido algo a través del artículo de Xiaoqi, dale a Me gusta a Xiaoqi.
El artículo se actualiza continuamente, puedes busque [Entrevista JAVA de Xiaoqi] en WeChat para leerlo lo antes posible y responda a [Información] y hay más beneficios que he preparado para usted.

I. Introducción

Como programador de Java, algunos de los principios subyacentes de Zookeeper son un punto de habilidad que podemos mover ladrillos sin tener que aprender , pero ¿por qué Xiaoqi habla de eso? ¿Es solo para perder 1 minuto del precioso tiempo de todos, 1 minuto para una persona, 500,000 personas es 1 año , 50 millones de personas son 100 años , ganando, Xiaoqi se conectó con éxito con una persona (ganando sangre)?

Por supuesto que no, y el artículo de Xiaoqi no es leído por tanta gente, por lo que es una pérdida de riñón como máximo .

¡ Aprender los principios subyacentes de Zookeeper es porque el entrevistador quiere preguntar ! , así que tenemos que aprender, ¿qué? ¿No se aprende si no es práctico? Ese vecino, Xiaoqi, va a estudiar mucho, y el entrevistador solo quiere que Xiaoqi no te quiera.

inserte la descripción de la imagen aquí

En cuanto a por qué preguntó por qué el entrevistador preguntó sobre los principios subyacentes de Zookeeper, esto. . . Le dejo esta oportunidad a usted. La próxima vez que entreviste, el entrevistador le preguntará: "Cuénteme sobre los principios subyacentes de Zookeeper". Usted: "Hola, entrevistador, ¿por qué pregunta sobre los principios subyacentes de Zookeeper? Me da una computadora y configuraré un sistema de gestión de biblioteca para usted en cinco minutos . ¿No es delicioso? Veamos el verdadero capítulo en el teclado". En este momento, el entrevistador le dirá la respuesta, y puede escribir la respuesta en el área de comentarios para que Xiao Qi y muchos amigos sepan por qué está preguntando.

inserte la descripción de la imagen aquí

2. Entrevista

Un domingo soleado, llegué a un parque desconocido (no pregunten por qué es domingo, es 997, pero para llenar el estómago de los trabajadores migrantes, solo puedo saber que hay tigres en las montañas, y tiendo caminar en las montañas), sentado en el desconocido En la sala de conferencias, estaba esperando que la Srta. HR llamara al entrevistador. En este momento, mi estado de ánimo era tan confuso como el de sus amigos. Me preocupaba que sería difícil para el entrevistador para preguntar? ¿Qué debo hacer cuando me pregunten sobre mi punto ciego de conocimiento? Cuando me presente por un tiempo, ¿quieres hablar sobre mi relación con Xiaoqi?

Un apuesto entrevistador con ojos agudos entró y vio sus ojos agudos que parecían ser capaces de ver a través de todo. Estaba pensando, de lo contrario, no querría 20k por un tiempo, sino 8k. Es muy confuso, pero recordé que solo Vi la serie de programación de aprendizaje divertido de Xiaoqi antes de venir. He aprendido completamente la esencia de Xiaoqi. Inmediatamente obtuve la confianza y decidí pedir 30k por un tiempo y aprender Xiaoqi si no lo doy. No vayas ( ja ja)

Entrevistador: Xiaoqi, cierto, ¿has traído tu currículum?

Yo: No lo traje. Ahora tengo dos piezas para imprimir a color, cinco hojas de vida para mí, y cada entrevista cuesta diez dólares. Mi amigo me dijo que no vaya a un trabajo que requiere que pague antes de conseguir un trabajo. .

Entrevistador: . . . Entonces en que te apoyas para conquistarme y dejarme contratarte

Yo: ¿Temperamento?

Por favor agregue la descripción de la imagen

(En este momento, el entrevistador no llamó al guardia de seguridad, sino que sacó el palo que me había estado esperando durante mucho tiempo detrás de la puerta, y me cobarde al instante)

inserte la descripción de la imagen aquí

Tuve que sacar de mi mochila el currículum que pedí a otros entrevistadores de la empresa en la mañana, y esta es la situación de la mañana.

Entrevistador de la mañana: ¡Eso es todo por la entrevista de hoy, regrese y espere el aviso!

Yo: Hola entrevistador, si su empresa no piensa admitirme, ¿me puede devolver mi currículum en papel?, tengo otra entrevista en la tarde.

El entrevistador de la mañana: ¡Dije por qué tu currículum está arrugado, resulta que lo has estado reciclando! ¿Cuánto tiempo ha estado presente este síntoma?

Yo: Ha pasado medio mes . . .

(La entrevista continuó después de que le entregué mi currículum arrugado al entrevistador...)

3. ¿Qué es Zookeeper?

Entrevistador: ¿Veo que eres competente en Zookeeper en tu currículum? (Hmph, el entrevistador sonríe con desdén)

Yo: Originalmente no quería escribir de manera competente, pero a mis colegas les encanta y obligan a escribir, pero no tiene nada de malo. Aunque no ha alcanzado la perfección, es casi el pináculo.

Entrevistador: Jeje, hablemos primero de lo que es Zookeeper

Yo: ZooKeeper es un servicio de coordinación de aplicaciones distribuidas de código abierto y distribuido , principalmente para resolver el problema de coherencia de datos en una arquitectura distribuida. Los escenarios de aplicación típicos incluyen centro de configuración distribuido, registro distribuido, bloqueo distribuido, colas distribuidas, elecciones de clúster, barreras distribuidas, publicación/ suscribirse y otros escenarios.

Entrevistador: Bueno, ¿qué tipo de estructura de datos es Zookeeper?

Yo: Zookeeper es una estructura de datos similar a un sistema de archivos. La capa más externa se puede imaginar como una carpeta grande con algunas carpetas pequeñas dentro.

4. ¿Qué estructuras de datos tiene Zookeeper?

Entrevistador: Bueno, ¿cuántos formatos de datos comunes tiene Zookeeper?

Yo: Cada elemento de subdirectorio en Zookeeper es un znode (nodo de directorio) . Estos nodos de directorio se pueden crear, eliminar y modificar al igual que nuestros directorios ordinarios. Existen principalmente cuatro tipos de znodes que usamos comúnmente.
1. Nodo de directorio persistente:
después de que el cliente se desconecte de zookeeper, el nodo seguirá existiendo. Mientras el nodo no se elimine manualmente, existirá para siempre.
2. Nodo de directorio de numeración secuencial persistente:
después de que el cliente se desconecte de zookeeper, el nodo aún existe, pero zookeeper numera secuencialmente el nombre del nodo.
3. Nodo de directorio temporal:
después de que el cliente se desconecte de zookeeper, el nodo se elimina.
4. Nodo de directorio de numeración secuencial temporal:
después de que el cliente se desconecta de zookeeper, el nodo se elimina, pero zookeeper numera secuencialmente el nombre del nodo.

5. ¿Cuáles son las funciones principales de Zookeeper?

Entrevistador: Bueno, ¿cuáles son las funciones principales de Zookeeper?

Yo: zookeeper tiene un mecanismo de notificación de monitoreo. Si se monitorea un nodo, cuando se elimina o modifica el nodo, el oyente percibirá el mensaje de modificación.

Entrevistador: Bueno, dado que el cuidador del zoológico tiene un mecanismo de monitoreo, ¿cuántos tipos de cambios se pueden monitorear?

Yo: Se pueden monitorear siete tipos de cambios:
1. Ninguno: evento de establecimiento de conexión
2. NodeCreated: creación de nodo
3. NodeDeleted: eliminación de nodo
4. NodeDataChanged: cambio de datos de nodo
5. NodeChildrenChanged: cambio de lista de nodos secundarios
6, DataWatchRemoved: monitoreo de nodo Eliminado
7. ChildWatchRemoved: se elimina la supervisión del nodo secundario

Entrevistador: Podemos usar Synchronized en el desarrollo para garantizar la seguridad de los subprocesos. ¿Por qué necesitamos usar zookeeper para implementar bloqueos distribuidos?

Yo: Si usamos Synchronized en una situación independiente, es decir, solo un proceso, se puede garantizar la seguridad de subprocesos. Sin embargo, en un caso distribuido, hay múltiples procesos diferentes, no subprocesos diferentes en un proceso, por lo que Synchronized no puede garantizar la seguridad de múltiples procesos.

Entrevistador: ¿Qué información importante tiene el nodo zookeeper y cómo consultarlo?

Yo: el nodo zookeeper puede ver la información principal a través del comando stat, que incluye:
1. cZxid: la identificación de la transacción (el valor de Zxid) que creó el znode.
2. mZxid: El id de transacción del último znode modificado.
3. pZxid: la identificación de transacción del último nodo secundario agregado o eliminado (la lista de nodos secundarios cambiará solo cuando cambie la lista de nodos secundarios).
4. ctime: hora de creación del znode.
5. mtime: La última hora de modificación del znode.
6. dataVersion: la versión de datos actual del znode.
7. cversion: versión del conjunto de resultados del nodo secundario de znode (la adición y eliminación de los nodos secundarios de un nodo afectará a esta versión).
8. aclVersion: Indica la versión acl de este znode.
9. ephemeralOwner: Cuando el znode es un znode temporal, indica el sessionid del propietario del znode, si el znode no es un nodo temporal, este campo se establece en cero.
10. dataLength: la longitud del campo de datos de znode.

inserte la descripción de la imagen aquí

Entrevistador: ¿Cuáles son los comandos para que zookeeper cree nodos y monitoree nodos?

I:
1. Crear un nodo persistente: crear /nombre de nodo
2. Crear un nodo secuencial persistente: crear -s /nombre de nodo
3. Crear un nodo temporal: crear -e /nombre de nodo
4. Crear un nodo secuencial temporal: crear - e -s / Nombre de nodo
5. Nodo de escucha: get -w /nombre de nodo

6. ¿Qué permisos tiene Zookeeper?

Entrevistador: ¿Qué permisos tiene el cuidador del zoológico?

Yo: Debería basarse en el tamaño, quien sea más alto tiene la última palabra.

inserte la descripción de la imagen aquí

Entrevistador: Estás buscando pelea, ¿verdad? Los datos son muy grandes y pequeños. . .

inserte la descripción de la imagen aquí

Yo: zookeeper tiene control de permisos ACL (Lista de control de acceso), que puede controlar las operaciones de lectura y escritura de los nodos y garantizar la seguridad de los datos. De lo contrario, cualquiera puede crear y eliminar nodos, lo que sería un desastre.

Entrevistador: ¿Cuáles son los componentes de la configuración de permisos de ACL?

Yo: consta de tres partes, a saber, modo de permiso, objeto de autorización e información de permiso .

Entrevistador: ¿Puedes hablar sobre lo que representan estas tres partes?

Yo: modo de permiso: es la forma en que el servidor zookeeper realiza la verificación de permisos, como si desbloquear el teléfono con una huella digital o una contraseña, si usa una contraseña, cualquier persona que conozca la contraseña puede desbloquear su teléfono, si usa un Huella digital, solo tus propios dedos pueden desbloquear. Por lo tanto, el modo de permiso se divide aproximadamente en dos tipos:

1. Verificación del alcance: El alcance es que zookeeper puede otorgar permisos para una ip o un rango de direcciones ip, lo que equivale a desbloquear con huella dactilar. Me doy un dedo, o todos los dedos de los pies otorgan permisos.
2. Verificación de contraseña: Puede entenderse como el método de usuario y contraseña, esto equivale a desbloquear la contraseña, después de conocer el usuario y la contraseña, todas las personas equivalen a otorgar permisos.

Objeto de autorización: El objeto de autorización es a quién se otorga la autorización. Si es un método de verificación de rango, el objeto de autorización es la dirección IP. Si es autenticación de contraseña, el objeto de autorización es el nombre de usuario.

Información de autorización: la información de autorización se refiere a cuál es nuestro poder específico, por ejemplo, si podemos jugar o escuchar canciones después de desbloquear nuestro teléfono móvil, o si podemos romper nueces con nuestro teléfono móvil.

inserte la descripción de la imagen aquí

Hay cinco tipos de permisos definidos en zookeeper:
1. El nodo de datos (c:create) crea permisos, y el objeto al que se le otorga el permiso puede crear nodos secundarios bajo el nodo de datos.
2. El nodo de datos (w:wirte) actualiza el permiso y el objeto que otorga el permiso puede actualizar el nodo de datos.
3. El nodo de datos (r:read) tiene el permiso de lectura, y el objeto al que se le otorgó el permiso puede leer el contenido del nodo y la información de la lista de los nodos secundarios.
4. El permiso de eliminación del nodo de datos (d:delete), el objeto al que se le otorgó el permiso puede eliminar los nodos secundarios del nodo de datos.
5. El nodo de datos (a:admin) tiene derechos de administrador y el objeto que otorga los derechos puede establecer derechos de ACL para el cuerpo del nodo de datos.

Entrevistador: ¿Cómo vemos y configuramos la información de permisos de ACL de un nodo?

Yo: Puede obtener la información de permisos de un nodo a través de getAcl y establecer la información de permisos de un nodo a través de setAcl.

7. Persistencia de datos de Zookeeper

Entrevistador: ¿Los datos del cuidador del zoológico están almacenados en la memoria y cómo realizar una operación persistente?

Yo: zookeeper es muy similar a redis, los datos están en la memoria y hay dos formas de persistencia, una es registrar registros de transacciones y la otra es tomar una instantánea.

El disco que registra el registro de transacciones realizará operaciones de E/S. El número creciente de registros de transacciones activará el disco para abrir nuevos bloques de disco para el archivo. Por lo tanto, para mejorar la eficiencia del disco, puede aplicar a la operación sistema para un bloque de disco más grande al crear un archivo Configurado por el parámetro zookeeper.preAllocSize.

La dirección de almacenamiento del registro de transacciones se especifica mediante dataDir en el archivo de configuración zoo.cfg.

inserte la descripción de la imagen aquí

Entrevistador: Este tipo es increíble, no tengo nada que preguntar aquí, qué más preguntas tienes que hacer (los ojos del entrevistador brillan)

yo: eh . . ¿Puede el entrevistador darme mi currículum en papel? ¿No puedo escribir y dibujar en mi currículum? Lo usaré para mi entrevista de mañana.

Entrevistador: ¿Qué otras empresas estás buscando?, solo acércate a mí, las condiciones están abiertas para ti.

Yo: 100k entonces (en este momento el entrevistador recogió el palo que preparó de nuevo)

Entrevistador: Si no vienes, dame una recomendación y deja que alguien más venga a mí para una entrevista.

Yo: Primero deberías estudiar cuidador del zoológico. Afortunadamente, soy el único aquí hoy. Si vienen los lectores leales de Xiaoqi, serás abusado miserablemente. (Le dejé la dirección de mi blog al entrevistador, me di la vuelta y dejé una hermosa espalda, y el entrevistador se quedó sentado sin expresión, como si le hubieran dejado cien millones...)

8. Resumen

El cuidador del zoológico aquí no se ha resuelto, y el artículo continuará actualizándose más adelante. Se recomienda recopilarlo.

Los comandos involucrados en el artículo deben tocarse varias veces como yo. Solo en el proceso de tocar puedes descubrir si realmente dominas los comandos.

Si crees que mi artículo no es malo, dale me gusta. Además, puedes buscar [Entrevista de Xiaoqi JAVA] en WeChat para leer más artículos buenos y obtener la información que he preparado para ti.

Supongo que te gusta

Origin blog.csdn.net/weixin_44096133/article/details/123695087
Recomendado
Clasificación