En LinkedIn hemos utilizado ZooInspector que viene con Zookeeper. La interfaz de usuario de ZooInspector se basa en un applet de java. Funciona bastante bien cuando el conjunto de datos es pequeño. Se volvió muy lento cuando el tamaño de los datos en Zookeeper aumentó. Además de la lentitud de la UI, aumentó la carga en los servidores de Zookeeper. Aunque esta carga adicional se compone de solicitudes de lectura, afecta al rendimiento de la escritura en Zookeeper (Zookeeper tiene una sola cola de solicitudes para la lectura y la escritura). Esto, a su vez, afectó al tiempo de conmutación por error.
En general, nos gustó la interfaz de usuario y las características, pero el rendimiento era inaceptable. En lugar de crear otra interfaz de usuario, hemos investigado el código y hemos hecho bastantes cambios relacionados con el rendimiento. Hicimos muchas optimizaciones como
— usar zk async api’s
— leer sólo si las versiones han cambiado.
— carga perezosa (cargar cuando el usuario hace clic en un znode o expande un nodo)
Estas mejoras fueron suficientes para nuestro caso de uso.
Jason, el desarrollador que hizo estas mejoras de rendimiento, subió el código a github. zzhang5/zooinspector