Amazon MSK 클러스터에서 소비자 지연이 심한 이유는 무엇입니까?

3분 분량
0

Amazon Managed Streaming for Apache Kafka(Amazon MSK) 클러스터에서 소비자 지연 문제를 해결하고 싶습니다.

해결 방법

전제 조건

다음 명령을 실행하여 Amazon CloudWatch 지표를 사용하여 소비자 지연을 확인합니다.

./kafka-consumer-groups.sh --bootstrap-server <broker endpoints> --group <groupid> --describe --command-config <properties>

참고: 대체 **<broker endpoints>**과(와) 브로커 엔드포인트, **<groupid>**과(와) 그룹 ID 및 **<properties>**과(와) 속성.

소비자 지연과 관련된 일반적인 문제 해결

소비자 대 파티션 비율 확인: 소비자 그룹의 각 소비자는 그룹에서 사용 가능한 소비자를 기준으로 파티션의 하위 집합에서 읽습니다. 각 소비자가 여러 파티션에서 소비하는 경우 많은 양의 데이터가 처리되어 지연이 발생할 수 있습니다.

가능하면 소비자 대 파티션 비율을 1:1에 가깝게 유지하십시오. 지연이 지속되면 파티션과 소비자 수를 늘리십시오.

이상치 파악: 이상치는 소비자 지연을 일으킬 수 있습니다. 소비자 그룹의 다른 파티션보다 훨씬 더 많이 기여하는 소비자 파티션이 있는지 확인합니다. 문제의 원인을 파악하여 적절한 해결 방법을 적용합니다. 마지막 옵션으로 애플리케이션을 재부팅합니다.

소비자 호스트의 리소스 사용량 확인: 소비자 애플리케이션의 리소스를 모니터링하여 리소스 부족 현상이 있는지 확인합니다. 소비자가 느리면 메시지 처리 속도가 느려지고 소비자 지연이 발생합니다.

소비자 그룹 재조정 확인: 소비자 그룹 재조정 중에는 모든 소비자 파티션 할당이 취소됩니다. 결과적으로 소비자가 해당 토픽에 대한 읽기를 중단하여 지연이 증가합니다. 자세한 내용은 소비자 그룹의 지속적인 재조정 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

소비자 구성 평가: 생산자가 소비자의 읽기 속도보다 빠르게 쓰는 경우 소비자 지연이 발생할 수 있습니다. 데이터가 생산되는 즉시 읽으려면 소비자 구성에서 fetch.min.bytesfetch.partition.min.bytes를 조정합니다. max.poll.interval.msmax.poll.records 속성은 소비자가 오프셋을 커밋하는 빈도와 한 번에 가져오는 메시지 수에 영향을 줄 수 있습니다. 이러한 설정을 조정하면 소비자 지연을 줄일 수 있습니다.

메시지 크기 관리: 소비자 애플리케이션이 메시지를 느리게 처리하는 경우 특히 메시지 크기가 크면 소비자 지연이 발생할 수 있습니다. 워크로드를 처리할 소비자 인스턴스의 수를 늘립니다.

애플리케이션 디자인 검토: 소비자 애플리케이션의 디자인이 소비자 지연에 영향을 미칠 수 있습니다. 처리 중인 메시지의 볼륨에 맞게 애플리케이션을 설계했는지 확인합니다. 애플리케이션을 스케일 업하거나 처리 논리를 최적화합니다.

브로커 리소스 사용량 모니터링: 브로커의 CPU 사용량을 모니터링하여 브로커에 과부하가 걸려 지연이 증가하는지 확인합니다. 높은 CPU 사용량의 문제를 해결하려면 Amazon MSK 클러스터에 있는 하나 이상의 브로커에서 CPU 사용량이 높아지는 문제를 해결하려면 어떻게 해야 합니까?를 참조하세요.

워크로드에 맞게 클러스터 최적화: MSK 클러스터의 Kafka 브로커가 워크로드에 맞게 구성되고 최적화되어 있는지 확인합니다. 토픽 파티션이 브로커 전체에 균등하게 분산되어 있는지 확인합니다. 복제 요소가 적절하게 설정되었는지 확인합니다.

네트워크 지연 시간 확인: 소비자와 MSK 클러스터 간의 네트워크 지연 시간이 길면 소비자 지연이 심해질 수 있습니다. 소비자 애플리케이션과 MSK 클러스터 간의 네트워크 연결을 확인합니다. 연결이 느리면 소비자 애플리케이션을 Kafka 브로커에 더 가깝게 이동합니다. 또는 네트워크 구성을 최적화합니다.

AWS 공식
AWS 공식업데이트됨 일 년 전