Amazon Managed Service for Apache Flink(Amazon MSF)는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려져 있었습니다.
Kinesis 데이터 스트림의 업스트림 또는 소스 조절
증상: 애플리케이션이 업스트림 소스 Kinesis 데이터 스트림에서 LimitExceededExceptions을 발견합니다.
잠재적 원인: Apache Flink 라이브러리 Kinesis 커넥터의 기본 설정이 Kinesis 데이터 스트림 소스에서 읽도록 설정되어 있으며, GetRecords 호출당 인출되는 최대 레코드 수에 대해 매우 엄격한 기본 설정이 사용됩니다. 샤드당 레코드 한도는 레코드 1,000개에 불과하지만 Apache Flink는 기본적으로 GetRecords 직접 호출당 10,000개의 레코드를 가져오도록 구성되어 있습니다(이 직접 호출은 기본적으로 200ms마다 수행됨).
이 기본 동작으로 인해 Kinesis 데이터 스트림을 사용하려고 할 때 병목 현상이 발생하여 애플리케이션 성능 및 안정성에 영향을 미칠 수 있습니다.
CloudWatch ReadProvisionedThroughputExceeded 지표를 확인하여 이 지표가 0보다 큰 상태가 장기간 또는 지속적으로 이어지는지 보면 이를 확인할 수 있습니다.
Amazon Managed Service for Apache Flink 애플리케이션의 CloudWatch 로그에서 지속적인 LimitExceededException 오류가 발생하는지 확인해 이를 파악할 수 있습니다.
해결 방법: 다음 두 가지 중 하나를 수행하여 이 시나리오를 해결할 수 있습니다.
GetRecords직접 호출당 가져오는 레코드 수의 기본 한도를 낮춥니다.Amazon Managed Service for Apache Flink 애플리케이션에서 적응형 읽기를 활성화합니다. 적응형 읽기 기능에 대한 자세한 내용을 알아보려면 SHARD_USE_ADAPTIVE_READS
를 참조하십시오.