Red de conocimiento informático - Problemas con los teléfonos móviles - Uso básico de los comandos ZK de la serie Zookeeper

Uso básico de los comandos ZK de la serie Zookeeper

Antes de comprender los principios subyacentes de ZK, comprendamos brevemente los comandos ZK de uso común. Familiarizarse con los comandos ZK de uso común es útil para solucionar problemas relacionados o comprender escenarios como los sistemas de desarrollo propio basados ​​en ZK. . Por ejemplo, durante el desarrollo, se descubre que algunos servicios de Dubbo no se pueden llamar. Esto puede deberse a que el servicio no se ha registrado en ZK o está desconectado. También es posible que la empresa tenga un sistema de desarrollo propio que utilice ZK como tal. el centro de configuración. Si está familiarizado con los comandos ZK, sabrá cómo hacerlo. Lograr el registro de descubrimiento de servicios y la actualización dinámica de la configuración.

Sin más preámbulos, ¡primero comprendamos los comandos ZK comunes!

De hecho, ZK no tiene un comando de ayuda. Puede escribir uno o dos caracteres a voluntad y se mostrará así. Sin embargo, según el hábito de usar Linux, supongamos que se escribe ayuda. Puede imprimir los comandos soportados por ZK.

El comando ls puede ver los nodos en el directorio especificado. Usando parámetros opcionales, puede ver la información relacionada con el nodo 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 de ZK, se agregan nuevos contenedores y nodos TTL, que se crean usando -c y -t respectivamente. Por lo tanto, los lectores deben prestar atención a la versión que está utilizando actualmente. Si la versión es inferior a 3.5, no hay contenedores ni nodos TTL.

Instrucciones especiales sobre el uso de nodos contenedores y nodos TTL:

Además, en cuanto al uso de nodos TTL, se debe prestar especial atención al hecho de que si se utiliza el archivo de configuración predeterminado para iniciar ZooKeeper, desea crear un Para nodos con un tiempo de supervivencia prolongado, por ejemplo, ejecutar create -t ​​​​10 /test informará un error como KeeperErrorCode = Sin implementar para XXX. La solución es agregar extendTypesEnabled=true al archivo de configuración antes de iniciar ZK y luego reiniciar ZK (para la implementación del clúster, todos los ZK deben modificar el archivo de configuración y luego reiniciar)

Reiniciar después de la configuración y ejecutar create - t 10 /test Dicho comando no informará un error

Ejemplo: get -s /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 que la versión de datos actual = 1

Cliente 1: set -v 1 /demo demo-data1

Cliente 2: set -v 1 / demo demo-data2

El cliente 1 se ejecuta antes que el cliente 2. Si el cliente 2 lo ejecuta nuevamente, se mostrará un mensaje de error

-v versión: similar al comando set, -v Los parámetros se utilizan para determinar la versión de la operación actual

Ejemplo: primero cree un nodo delNode y luego elimínelo

Cuando se usa el comando crear anteriormente, hay un parámetro acl para configurar los permisos del nodo. Entonces, ¿cómo debemos configurarlo?

Por ejemplo: crear /testAcl demo world:anyone:crwda

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

El nombre completo de ACL es Lista de control de acceso, que es la lista de control de acceso que puede establecer los permisos de operación de los nodos.

Entonces, ¿cuál es la granularidad de los permisos de control?

Para el control de permisos de ACL del nodo, se identifica mediante: esquema:id:perm (es decir, el formato en el ejemplo -> mundo:cualquiera:crwda), su significado es:

¿Qué estrategias de autorización tiene Scheme?

¿Quiénes son los objetos de la autorización de identidad?

¿Cuáles son los permisos?

De acuerdo con los parámetros anteriores, podemos establecer permisos de nodo para todos, contraseñas de cuentas específicas e IP específicas, de modo que podamos administrar el acceso a los nodos de una manera más completa.

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

El comando create /testAcl demo world:anyone:crwda se ejecutó arriba para establecer permisos para el nodo. ¿Cómo verificar los permisos del nodo?

Es muy simple. Puede verificar los permisos del nodo correspondiente ejecutando la ruta del nodo getAcl, como getAcl /testAcl. Los resultados de la ejecución son los siguientes

Además de. Al configurar permisos al ejecutar el comando create para crear un nodo, también puede establecer permisos especificando el nodo a través de setAcl. Por ejemplo, si quiero especificar que el nodo /testAcl solo se puede operar a través de una IP específica y limitar el. permiso de ejecución para crdw, entonces puedo ejecutar setAcl /testAcl ip:127.0.0.1:crwd y ejecutar getAcl /testAcl nuevamente. El resultado es el siguiente:

Todavía hay algunos comandos ZK que no se han demostrado. Esto no nos impide aprender los principios de ZK. Primero domine los comandos comunes. Si hay otros escenarios en el futuro, aprenda de acuerdo con comandos específicos.

Descubrí accidentalmente un cliente Zookeeper. Los lectores interesados ​​pueden jugar con él ~ Recordatorio amigable: cuando hay una gran cantidad de nodos, puede abrirse muy lentamente o incluso congelarse, por lo que esta herramienta de visualización se puede usar en. el tuyo Solo por diversión para uso local, no recomendado para uso en producción. Esto también ilustra la importancia de aprender el comando ZK (serious face.jpg)

Después de descomprimirlo, ingrese al directorio de compilación de ZooInspector y ejecute java -jar zookeeper-dev-ZooInspector.jar para iniciar la herramienta.

Después de conectarse a ZK, puede ver la información del nodo y la ACL del nodo. Puede descubrir cómo jugarlo usted mismo ~

Bien, lo anterior son los conceptos básicos de ZK común. Comandos. Manejo básico de herramientas de uso y 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. tú ¡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~