RabbitMQ용 Amazon MQ의 네트워크 복원력 및 모니터링 모범 사례 - Amazon MQ

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

RabbitMQ용 Amazon MQ의 네트워크 복원력 및 모니터링 모범 사례

네트워크 복원력 및 모니터링 브로커 지표는 안정적인 메시징 애플리케이션을 유지하는 데 필수적입니다. 다음 모범 사례를 완료하여 자동 복구 메커니즘 및 리소스 모니터링 전략을 구현합니다.

1단계: 네트워크 장애 자동 복구

RabbitMQ 노드에 대한 클라이언트 연결이 실패할 경우 상당한 가동 중지를 방지하기 위해 자동 네트워크 복구를 항상 활성화하는 것이 좋습니다. RabbitMQ Java 클라이언트 라이브러리는 4.0.0 버전부터 자동 네트워크 복구를 기본적으로 지원합니다.

연결의 I/O 루프에서 처리되지 않은 예외가 발생하거나, 소켓 읽기 작업 시간 초과가 감지되거나, 서버가 하트비트를 놓치는 경우 자동 연결 복구가 트리거됩니다.

클라이언트와 RabbitMQ 노드 간의 초기 연결이 실패하는 경우에는 자동 복구가 트리거되지 않습니다. 연결을 다시 시도하여 초기 연결 실패를 해결하도록 애플리케이션 코드를 작성하는 것이 좋습니다. 다음 예제에서는 RabbitMQ Java 클라이언트 라이브러리를 사용하여 초기 네트워크 실패를 다시 시도하는 방법을 보여 줍니다.

ConnectionFactory factory = new ConnectionFactory(); // enable automatic recovery if using RabbitMQ Java client library prior to version 4.0.0. factory.setAutomaticRecoveryEnabled(true); // configure various connection settings try { Connection conn = factory.newConnection(); } catch (java.net.ConnectException e) { Thread.sleep(5000); // apply retry logic }
참고

애플리케이션에서 Connection.Close 메서드를 사용하여 연결을 종료하면 자동 네트워크 복구가 활성화되거나 트리거되지 않습니다.

2단계: 브로커 지표 및 경보 모니터링

RabbitMQ용 Amazon MQ 브로커에 대한 CloudWatch 지표 및 경보를 정기적으로 모니터링하여 메시징 애플리케이션에 영향을 미치기 전에 잠재적 문제를 식별하고 해결하는 것이 좋습니다. 탄력적 메시징 애플리케이션을 유지하고 최적의 성능을 보장하려면 사전 예방적 모니터링이 필수적입니다.

RabbitMQ용 Amazon MQ는 브로커 성능, 리소스 사용률 및 메시지 흐름에 대한 인사이트를 제공하는 지표를 CloudWatch에 게시합니다. 모니터링할 주요 지표에는 메모리 사용량과 디스크 사용량이 포함됩니다. 브로커가 리소스 제한에 가까워지거나 성능 저하가 발생할 때 CloudWatch 경보를 설정할 수 있습니다.

다음 필수 지표를 모니터링합니다.

RabbitMQMemUsedRabbitMQMemLimit

메모리 사용량을 모니터링하여 메시지 게시를 차단할 수 있는 메모리 경보를 방지합니다.

RabbitMQDiskFreeRabbitMQDiskFreeLimit

디스크 사용량을 모니터링하여 브로커 실패를 일으킬 수 있는 디스크 공간 문제를 방지합니다.

클러스터 배포의 경우 노드별 지표도 모니터링하여 노드별 문제를 식별합니다.

참고

고용량 메모리 경보를 방지하는 방법에 대한 자세한 내용은 주소 및 고용량 메모리 경보 방지를 참조하세요.