[Zookeeper leyendo notas-5] Proceso de inicio del servidor

1. Prelanzamiento

    1. Unified QuorumPeerMain como la clase de inicio. Independientemente de una sola máquina o clúster, QuorumPeerMain se configura como la clase de entrada de inicio en zkServer.cmd y zkServer.sh

    2. Analice el archivo de configuración zoo.cfg. zoo.cfg configura parámetros básicos en tiempo de ejecución, como tickTime, dataDir, clientPort y otros parámetros.

    3. Cree e inicie el limpiador de archivos histórico DatadirCleanupManager. Limpie regularmente registros de transacciones y archivos de datos de instantáneas.

    4. Determine si está actualmente en modo de clúster o en modo independiente. Si está en modo autónomo, se confiará a ZooKeeperServerMain para que se inicie.

    5. Analice el archivo de configuración zoo.cfg nuevamente.

    6. Cree una instancia de servidor ZooKeeperServer. El servidor de Zookeeper creará primero una instancia de servidor y luego la inicializará, incluida la inicialización de componentes como conectores, bases de datos de memoria y procesadores de solicitudes.

  2. Inicialización

    1. Crear ServerStats. ServerStats es una estadística cuando se ejecuta el servidor Zookeeper.

    2. Cree el administrador de datos Zookeeper FileTxnSnapLog. FileTxnSnapLog es la capa de acoplamiento entre el servidor superior de Zookeeper y el almacenamiento de datos subyacente, y proporciona una serie de interfaces para operar archivos de datos, como archivos de registro de transacciones y archivos de datos de instantáneas. Zookeeper crea un FileTxnSnapLog basado en el directorio de datos de instantánea dataDir y el directorio de registro de transacciones dataLogDir resuelto en el archivo zoo.cfg.

    3. Establezca el servidor tickTime y el límite de tiempo de espera de la sesión.

    4. Crear ServerCnxnFactory. Al configurar la propiedad del sistema zooperper.serverCnxnFactory para especificar si se debe usar el propio NIO de Zookeeper o usar el marco Netty como la fábrica de conexiones de red del servidor Zookeeper.

    5. Inicialice ServerCnxnFactory. Zookeeper inicializará Thread como el hilo principal de ServerCnxnFactory y luego inicializará el servidor NIO.

    6. Inicie el hilo principal de ServerCnxnFactory. Ingrese el método de ejecución Thread, en este momento el servidor no puede manejar la solicitud del cliente.

    7. Restaurar datos locales. Al inicio, se requiere la recuperación de datos de archivos de datos de instantáneas locales y archivos de registro de transacciones.

    8. Cree e inicie un administrador de sesión. Zookeeper creará un SessionTracker de administrador de sesión para la administración de sesión.

    9. Inicialice la cadena de procesamiento de solicitudes de Zookeeper. El método de procesamiento de solicitudes de Zookeeper es la implementación del modo de cadena de responsabilidad. Habrá múltiples procesadores de solicitudes para procesar una solicitud de cliente en secuencia, y estos servidores se concatenarán en una cadena de procesamiento de solicitudes cuando se inicie el servidor.

    10. Regístrese para el servicio JMX. Zookeeper expondrá cierta información del tiempo de ejecución del servidor al mundo exterior en forma de JMX.

    11. Registre la instancia del servidor Zookeeper. Registre la instancia del servidor Zookeeper con ServerCnxnFactory, y luego Zookeeper puede proporcionar servicios externos.

  En este punto, se ha iniciado la versión independiente del servidor Zookeeper.

 

Publicado 61 artículos originales · ganado elogios 2 · Vistas 7302

Supongo que te gusta

Origin blog.csdn.net/hebaojing/article/details/105455208
Recomendado
Clasificación