Docs Menu
Docs Home
/
MongoDB Atlas
/

Atlas 트리거

이 페이지의 내용

  • 트리거 유형
  • 제한 사항
  • Atlas 함수 제약 조건 적용
  • 이벤트 처리량
  • 트리거의 수는 사용 가능한 Change Streams을 초과할 수 없음
  • 중복 이벤트 진단

Atlas Triggers는 애플리케이션과 데이터베이스 로직을 실행합니다. Triggers는 이벤트에 응답하거나 사전 정의된 스케줄을 사용할 수 있습니다.

트리거는 구성된 유형의 이벤트를 수신합니다. 각 Trigger는 특정 Atlas Function에 연결됩니다. Trigger가 구성과 일치하는 이벤트를 관찰하면 '실행'됩니다. Trigger는 이 이벤트 객체를 연결된 함수에 인수로 전달합니다.

다음에서 트리거가 발동될 수 있습니다.

  • 주어진 컬렉션의 특정 작업 유형입니다.

  • 예약된 시간입니다.

Atlas 는 각 trigger 의 최신 실행 시간을 추적 하고 각 이벤트 가 최소 한 번 처리되도록 보장 합니다.

Atlas 는 다음과 같은 유형의 트리거를 지원합니다.

  • 데이터베이스 트리거는 문서 삽입, 변경, 삭제에 응답합니다. 데이터베이스 트리거는 연결된 각 MongoDB 컬렉션별로 구성할 수 있습니다.

  • 예정된 트리거는 미리 정의된 일정에 따라 함수를 실행합니다.

트리거는 Atlas 함수를 호출합니다. 이는 모든 Atlas 함수와 동일한 제약 조건이 있음을 의미합니다.

Atlas Function 제약 조건에 자세히 보기 .

용량을 사용할 수 있게 되면 프로세스 이벤트를 트리거합니다. 트리거의 용량은 이벤트 순서 구성에 따라 결정됩니다.

  • 순서가 지정된 트리거는 변경 스트림의 이벤트를 한 번에 하나씩 순서대로 처리합니다. 이전 이벤트의 처리가 완료된 후에만 다음 이벤트의 처리가 시작됩니다.

  • 순서가 지정되지 않은 트리거는 기본적으로 한 번에 최대 10,000개까지 여러 이벤트를 동시에 처리할 수 있습니다. 트리거 데이터 소스가 M10+ Atlas 클러스터인 경우, 순서가 지정되지 않은 개별 트리거를 구성하여 10,000개의 동시 이벤트 임계값을 초과할 수 있습니다. 자세한 내용은 최대 처리량 트리거를 참조하세요.

트리거 용량은 처리량 또는 보장된 실행 속도의 직접적인 측정값이 아닙니다. 트리거 용량은 트리거가 한 번에 처리할 수 있는 최대 이벤트 수의 한도를 말합니다. 실제로 트리거가 이벤트를 처리할 수 있는 속도는 트리거 함수의 실행 시간 로직과 지정된 기간 동안 수신한 이벤트 수에 따라 달라집니다.

트리거의 처리량을 늘리려면 다음 작업을 해 볼 수 있습니다.

  • 트리거 함수의 실행 시간 동작을 최적화합니다. 예를 들어 네트워크 호출 횟수를 줄일 수 있습니다.

  • 이 트리거의 프로젝션 필터를 사용하여 각 이벤트 객체의 크기를 줄이세요. 최상의 성능이 구현되도록 각 변경 이벤트의 크기를 2KB 이하로 제한하세요.

  • 트리거가 처리하는 이벤트 수를 줄이려면 일치 필터를 사용합니다. 예를 들어 특정 필드가 변경된 경우에만 어떤 작업을 수행하고 싶을 수 있습니다. 모든 업데이트 이벤트를 일치시키고 함수 코드에서 필드가 변경되었는지 확인하는 대신 트리거의 일치 필터를 사용하여 필드가 이벤트의 updateDescription.updatedFields 객체에 포함된 경우에만 트리거를 실행할 수 있습니다.

Atlas 는 총 데이터베이스 트리거 수를 제한합니다. 이 제한은 Atlas cluster 의 크기에 따라 결정됩니다.

각 Atlas 클러스터 계층에는 지원되는 변경 스트림의 최대 개수가 있습니다. 데이터베이스 트리거에는 자체 변경 스트림이 필요합니다. 데이터베이스 트리거는 사용 가능한 변경 스트림 수를 초과할 수 없습니다.

서비스 제한 페이지에서 Atlas 계층에 대해 지원되는 변경 스트림 수에 자세히 보기 .

정상적인 트리거 작동 중에는 트리거가 중복 이벤트를 보내지 않습니다. 그러나 일부 실패 또는 오류 조건이 발생하면 트리거가 중복 이벤트를 전달할 수 있습니다. 다음과 같은 경우 중복된 트리거 이벤트가 표시될 수 있습니다.

  • 이벤트 처리 및 추적을 담당하는 서버에 장애가 발생합니다. 이 장애로 인해 서버는 지속형 또는 장기 저장 시스템에 진행 상황을 기록하지 못하게 되어, 일부 최신 이벤트를 처리했다는 사실을 '잊게' 됩니다.

  • 이벤트 1부터 10까지 동시에 전송되는 비순차적 처리를 사용합니다. 이벤트 9가 실패하여 트리거 일시 중단으로 이어지는 경우, 시스템이 이벤트 9에서 재개될 때 이벤트 10과 같은 이벤트가 다시 처리될 수 있습니다. 시스템이 이벤트 순서를 엄격하게 따르지 않고 이미 처리된 이벤트를 다시 처리할 수 있으므로, 중복이 발생할 수 있습니다.

중복 trigger 이벤트가 감지되면 trigger 로그 에서 일시 중단된 트리거 또는 서버 오류가 있는지 확인합니다.

돌아가기

집계 파이프라인