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 AWS la infraestructura global se basa en AWS Regiones y zonas de disponibilidad. AWS Las regiones proporcionan varias zonas de disponibilidad físicamente independientes y aisladas que se encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, además de baja latencia. 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 acerca de AWS Regiones y zonas de disponibilidad, consulte AWS Infraestructura global.

Además de AWS Kinesis Data Streams, una infraestructura global, 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

  • Una EC2 instancia que aloja una o más instancias de la aplicación podría fallar

Registre el error del procesador

El trabajador invoca los métodos del procesador de registros mediante ExecutorServicetareas de Java. 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.

Fallo en el trabajador o en 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.

En una situación en la que el trabajador o la aplicación fallan, no se detecta el error y hay otras instancias en las que la aplicación se ejecuta en otras EC2 instancias, los trabajadores de esas otras instancias se encargan del 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 en estas otras EC2 instancias aumenta en consecuencia.

El escenario que se describe aquí supone que, aunque el trabajador o la aplicación hayan fallado, la EC2 instancia de alojamiento sigue ejecutándose y, por lo tanto, ningún grupo de Auto Scaling la reinicia.

Fallo en la EC2 instancia de Amazon

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