Tormenta tolerancia a fallos de prensa y comunicación de cuatro

¿Cuál es ACK

mecanismo de acuse de recibo es un sistema de tormentas en toda la tecnología de una innovación muy brillante.

Por ACK mecanismo, cada pieza de información enviada caño, puede ser determinado por el éxito o el fracaso del proceso de tratamiento, lo que permite a los desarrolladores tomar acción. Por ejemplo, en la meta, procesado con éxito, para actualizar el offset, cuando un fallo, el proceso de transmisión se repite.

De este modo, por ACK mecanismo, es fácil de hacer para asegurar que todos los datos son procesados, no una fuga.

También tenga en cuenta que, cuando el pico de fallar a la acción de disparo, no reenviar automáticamente tupla fallado, necesidad de caño sus propios datos re-adquirido, tiempo de retransmisión.

mecanismo de acuse de recibo

transmitir cada mensaje caño 

  1. Dentro de un tiempo predeterminado, la respuesta ack Boquilla Acker recibido, es decir, la tupla es un perno tarea subsiguiente procesado con éxito.
  2. En el plazo establecido, surtidor Acker no recibieron la tupla respuesta ACK, partió fallar la acción, que la tupla falló.
  3. O fallar Acker recibió una tupla enviado la respuesta, también la tarea falló, fallan a la acción de disparo.

Además mecanismo Ack también se utiliza comúnmente en la acción de limitación de corriente: Con el fin de la transmisión de datos Evitar espita demasiado rápido, mango demasiado lento y el perno, establecer el número de pendientes a menudo, cuando hay igual o más que el número de canalón tupla en espera no recibe la respuesta ACK o fallar, saltar realizar nextTuple, limitando así caño transmisión de datos.

Establecer el número de PEND surtidor; por conf.put (Config.TOPOLOGY_MAX_SPOUT_PENDING, en espera).

Cómo utilizar el mecanismo de acuse de recibo

msgstr banda surtidor cuando se transmiten datos

Acker número determinado es mayor que al menos 0;  Config.setNumAckers (la conf, ackerParal);

Al término de la tupla proceso en el perno, hacer OutputCollector.ack (tupla), el procesamiento falla, tirar FailedException, se realiza automáticamente OutputCollector.fail (tupla);

Cómo desactivar mecanismo de acuse de recibo

Hay dos maneras

  1. msgstr surtidor no envía los datos para llevar
  2. Establecer el número igual a 0 Acker 

 

fundamentalmente

sistema de tormentas tiene un grupo de trabajo especial, llamado Acker, que es responsable del seguimiento de DAG (gráfico acíclico dirigido) por cada mensaje.

Acker misión para salvar el valor de la asignación de un montón de Identificación del surtidor. El primer valor es el ID de tarea pico, por el ello, Acker saber cuales caño notificación de tareas cuando se procesa el mensaje. El segundo valor es un número de 64 bits, lo que llamamos ACK val, que es el OR exclusivo de cálculo al azar Identificación del árbol de resultados de todos los mensajes.

<TaskId, <IDraiz, ackValue >>

Spoutid, <generado por el sistema de identificación, ackValue>

Tarea-0,64bit, 0

val ACK que representa el estado de todo el árbol, no importa cuán grande es el árbol, sólo los números de tamaño fijo puede rastrear todo el árbol. Cuando se crea el mensaje y tendrá la misma respuesta a un mensaje enviado desde el XOR ID. Siempre que Acker encontró un árbol ACK val es 0, sabrá que este árbol ha sido completamente procesado.

 

 

 


mecanismo de comunicación tormenta

la comunicación entre los nodos Trabajador menudo necesidad de cruzar a través de la red, el uso de la tormenta ZeroMQ como una trama de mensaje o comunicación proceso Netty.

El proceso de trabajo de la comunicación interna: el hilo de diferente Woker comunicación utiliza comúnmente LMAX Disruptor a completa.

 

Inter-proceso de trabajo de Comunicación

El paso de mensajes entre procesos de trabajo, el mensaje sobre la aceptación y procesamiento de flujo como se muestra a continuación:

Para el proceso de trabajo, a fin de gestionar la entrada y salida de mensajes, cada proceso de trabajo tiene una rosca receptor separado (TCP supervisor.slots.ports de configuración de puerto de escucha);

 

Trabajador recibir el hilo correspondiente, cada subproceso de trabajo es la existencia de una transmisión independiente, que se encarga de leer la información de que el trabajador de transferencia en cola, el trabajador y enviado a la otra a través de la red; 

 

Cada uno tiene su propio ejecutor entrante y saliente-cola-cola. subproceso de trabajo recibir mensajes transmitidos por el ID recibido a la tarea correspondiente Ejecutor (uno o más) entrante en cola;

Cada uno tiene un ejecutor hilo separado respectivamente caño lógica de negocio / perno, el intermedio de datos se almacena en la salida de la lógica de negocio saliente-cola, cuando el ejecutor de la tupla saliente-cola alcanza un cierto umbral, el envío de hilo voluntad ejecutor Obtener mayor saliente en cola en la tupla, y enviado a la transferencia-cola.

 

Cada proceso de trabajo de los controles de uno o más hilos ejecutor, el usuario se pueden configurar en el código. De hecho, nos fijamos el número de código concurrente.

 

análisis de tráfico proceso de trabajo

http://images.cnitblog.com/blog/312753/201307/23153829-4ebd07b835ca46408f9e1b1f6282fe84.png

1: hilo Trabajador acepta recibir datos por la red, y de acuerdo con taskId Tuple incluido, adaptada a la Ejecutor correspondiente; a continuación, encontrar el correspondiente-cola de entrada de acuerdo Ejecutor, para transmitir datos a la cola de entrada-cola.

2: un consumo hilo de ejecución de lógica de servicio de datos entrante en cola a través del método de ejecución blot (***), el método de transmisión de tupla como un parámetro a la definida por el usuario.

3: Una vez finalizada la lógica de servicio, los datos intermedio se calcula se transmite a las colas de salida en colas, cuando el saliente en cola en la tupla alcanza un cierto umbral, Ejecutor hilo enviar obtendrá mayor saliente en cola de la tupla, y se envía Trabajador la transferencia-cola en.

4: datos de consumo subproceso de trabajo de transmisión en la transferencia-cola, se calcula la tupla de destino, está conectado a un diferentes datos nodo + portuarias transmitidos a través de la red a otro de manera Trabajador.

5: Paso 1 anterior operación (repetido) en otro trabajador.

Publicado 33 artículos originales · ganado elogios 3 · Vistas 5862

Supongo que te gusta

Origin blog.csdn.net/WandaZw/article/details/83414239
Recomendado
Clasificación