Constellation Knowledge Network - Preguntas y respuestas sobre Bagua - Los comandos ZK de la serie ZooKeeper se utilizan básicamente

Los comandos ZK de la serie ZooKeeper se utilizan básicamente

Antes de comprender los principios básicos de ZK, comprendamos brevemente los comandos ZK de uso común. La familiaridad con los comandos ZK de uso común puede ayudar a solucionar problemas relacionados o comprender los escenarios de sistemas de desarrollo propio basados ​​en ZK. Por ejemplo, durante el desarrollo, se descubre que algunos servicios de Dubbo no se pueden llamar, posiblemente porque el servicio no está registrado en ZK o está desconectado. También es posible que la empresa tenga un sistema de desarrollo propio con ZK como centro de configuración; Si está familiarizado con los comandos ZK, sabrá cómo implementar el registro de descubrimiento de servicios y la actualización dinámica de la configuración.

Sin más preámbulos, ¡primero conozcamos los comandos ZK más utilizados!

En realidad, ZK no tiene ningún comando de ayuda. Puedes ingresar uno o dos caracteres y aparecerá así. Basándome únicamente en el hábito de usar Linux, creo que escribir ayuda imprimirá los comandos admitidos por ZK.

El comando ls puede ver los nodos en el directorio especificado y se pueden usar parámetros opcionales para ver información relacionada con los nodos con más detalle.

stat/ es equivalente a ls -s/

Similar al comando ls, agregue el parámetro -w para agregar monitoreo.

Después de la versión 3.5, se agregaron contenedores y nodos TTL, que se crean con -c y -t respectivamente. Por lo tanto, los lectores deben prestar atención a la versión que están utilizando actualmente. Si la versión es inferior a 3.5, no hay contenedores ni nodos TTL.

En particular, explique el uso de nodos contenedores y nodos TTL:

Además, con respecto al uso de nodos TTL, cabe señalar que si ZooKeeper se inicia con la configuración predeterminada archivo, y usted Si desea crear un nodo con una vida útil, por ejemplo, si ejecuta create -t ​​​​10 /test, obtendrá un código de error de error = Implementado para XXX. La solución es agregar extendTypesEnabled=true al archivo de configuración antes de iniciar ZK y luego reiniciar ZK (si se trata de una implementación de clúster, todos los ZK deben modificar el archivo de configuración antes de reiniciar).

Una vez completada la configuración, reinicie y ejecute comandos como create -t ​​​​10 /test para que no se produzcan errores.

Ejemplo: Obtener/Demo

Ejemplo: Primero consulte el número de versión del nodo y simule la modificación simultánea del mismo nodo.

Get -s /demo muestra la versión de datos actual = 1.

Cliente 1: set-v 1/demodemo-data 1

Cliente 2: set-v1/demodemo-data2

El cliente 1 está en el cliente If El cliente 2 lo ejecuta nuevamente, se mostrará un error.

-v versión: similar al comando set, el parámetro -v se utiliza para determinar la versión de la operación actual.

Ejemplo: Primero cree un nodo delNode y luego elimínelo.

Antes de usar el comando crear, se utiliza un parámetro acl para configurar los permisos del nodo. Entonces, ¿cómo se debe configurar?

Por ejemplo: crear/probar el mundo de demostración de ACL: cualquiera: crwda

Esta línea de comando significa crear el nodo testAcl, el valor del nodo es demo y su política de permisos es Se pueden realizar todas las operaciones crwda. A continuación, echemos un vistazo a qué es ACL.

El nombre completo de ACL es Lista de control de acceso, es decir, lista de control de acceso. ACL puede establecer los permisos de operación de los nodos. Entonces, ¿cuál es la granularidad de los permisos de control?

El control de acceso ACL del nodo utiliza: esquema:id:perm (es decir, el formato en el ejemplo -->; mundo: cualquiera: crwda), que significa:

¿Qué son los esquemas de autorización?

¿Cuáles son los objetos de la autorización de identificación?

¿Qué permisos tienes?

Con base en los parámetros anteriores, podemos establecer permisos de nodo para cada persona, una contraseña de cuenta específica y una IP específica, de modo que el acceso al nodo se pueda administrar en más aspectos.

Vale la pena señalar que los nodos pueden establecer múltiples políticas de autorización, pero para los nodos de nivel superior e inferior, la configuración de permisos solo es efectiva para el nodo actual. En otras palabras, no existe una relación de herencia entre permisos. Incluso si se establecen permisos en el nodo, ¡no afectará los permisos originales de los nodos superior e inferior!

El comando crear/probar ACL demo world:any one:crwda se ejecutó anteriormente para establecer permisos para el nodo. Entonces, ¿cómo ver los permisos del nodo?

Muy sencillo. Al ejecutar la ruta del nodo getAcl, como getAcl /testAcl, puede verificar los permisos del nodo correspondiente. Los resultados de la ejecución son los siguientes.

Además de configurar permisos al crear un nodo ejecutando el comando crear, también puede especificar permisos de configuración del nodo a través de setAcl.

Por ejemplo, si quiero especificar que /testAcl solo puede operar a través de una IP específica y el permiso de ejecución está limitado a crdw, entonces puedo ejecutar setacl/test ACL IP:127.0.0.1:CRWD y ejecutar getAcl/testAcl nuevamente. Los resultados son los siguientes:

Algunos comandos de ZK no han sido probados, lo que no nos impide aprender los principios de ZK. Primero domine los comandos comunes y luego aprenda basándose en comandos específicos en otros escenarios.

Accidentalmente descubrí un cliente con Zookeeper. Los lectores interesados ​​pueden jugar con él. Recordatorio amigable: cuando hay muchos nodos, puede abrirse muy lentamente o incluso congelarse, por lo que esta herramienta de visualización se puede reproducir localmente. No recomendado para uso en producción. Esto también ilustra la importancia de aprender el comando ZK (cara seria). jpg)

Después de la descompresión, ingrese al directorio de compilación de ZooInspector y ejecute el jar Java-jar zookeeper-dev-zoo inspector para iniciar la herramienta.

Después de conectarte a ZK, puedes ver la información del nodo y la ACL del nodo. Puedes explorar el juego específico tú mismo~

Bien, lo anterior es el uso básico del uso común de ZK. comandos y herramientas de visualización.

Materiales de referencia:

Principios y prácticas de coherencia distribuida desde Paxos hasta Zookeeper

Si crees que el artículo es bueno, dale me gusta.

¡Tu aliento es mi motivación! Si hay algo que no está claro o es incorrecto en el artículo, deje un mensaje en el área de comentarios~

上篇: Prueba de préstamo de libros de Zhou Gong_Prueba de préstamo de libros de sueños 下篇: ¿En qué posición juega Eno?
Artículos populares