Resiliencia de Amazon Kinesis Data Streams - Amazon Kinesis Data Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Resiliencia de Amazon Kinesis Data Streams

La infraestructura AWS global se basa en AWS regiones y zonas de disponibilidad. AWS Las regiones proporcionan varias zonas de disponibilidad aisladas y separadas físicamente, que están conectadas mediante redes de baja latencia, alto rendimiento y alta redundancia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datos que realizan una conmutación por error automática entre zonas de disponibilidad sin interrupciones. Las zonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que las infraestructuras tradicionales de centros de datos únicos o múltiples.

Para obtener más información sobre AWS las regiones y las zonas de disponibilidad, consulte Infraestructura global.AWS

Además de la infraestructura AWS global, Kinesis Data Streams ofrece varias funciones que le ayudan a satisfacer sus necesidades de respaldo y resiliencia de datos.

Recuperación ante desastres en Amazon Kinesis Data Streams

Cuando utiliza una aplicación de Amazon Kinesis Data Streams para procesar datos procedentes de un flujo, pueden producirse errores en los siguientes niveles:

  • Error en un procesador de registros

  • Error en un proceso de trabajo, o en la instancia de la aplicación que creó la instancia del proceso de trabajo

  • Error en una instancia EC2 que aloja una o más instancias de la aplicación

Error de procesador de registros

El trabajador invoca los métodos del procesador de registros mediante tareas de Java. ExecutorService Si una tarea produce un error, el proceso de trabajo conserva el control del fragmento que estaba procesando el procesador de registros. El proceso de trabajo inicia un nuevo procesador de registros para procesar dicho fragmento. Para obtener más información, consulte Limitación de lectura.

Error en el proceso de trabajo o la aplicación

Si un proceso de trabajo o una instancia de la aplicación de Amazon Kinesis Data Streams produce un error, debe definir y encargarse de la situación. Por ejemplo, si el método Worker.run crea una excepción, debe identificarla y administrarla.

Si el error se produce en la propia aplicación, debe detectarlo y reiniciarla. Cuando se inicia la aplicación, crea una instancia de un nuevo proceso de trabajo, que a su vez crea instancias de nuevos procesadores de registros a los que se asignan automáticamente fragmentos para procesar. Podrían ser los mismos fragmentos que procesaban estos procesadores de registros antes del error, o fragmentos nuevos para estos procesadores.

Si el proceso de trabajo o la aplicación tiene un error, pero no se detecta, y existen otras instancias de la aplicación en ejecución en otras instancias EC2, los procesos de trabajo en estas instancias administran el error. Crean procesadores de registros adicionales para procesar los fragmentos que ya no están siendo procesados por proceso de trabajo que experimentó el error. La carga sobre estas otras instancias EC2 aumenta en consecuencia.

La situación que se describe aquí supone que, aunque el proceso de trabajo o la aplicación haya experimentado un error, la instancia de EC2 que los aloja sigue en ejecución y, por lo tanto, no ha de reiniciarla un grupo de Auto Scaling.

Error en una instancia de Amazon EC2

Se recomienda que ejecute las instancias de EC2 para su aplicación en un grupo de Auto Scaling. De esta forma, si una de las instancias de EC2 experimenta un error, el grupo de Auto Scaling lanza automáticamente una instancia nueva para sustituirla. Debe configurar las instancias para lanzar la aplicación de Amazon Kinesis Data Streams al iniciar.