조절 메커니즘 throttling-mechanism
소개 introduction
Adobe은 데이터 프로세서로서 고객의 사용자가 리소스를 균등하게 사용하고 서비스가 불필요한 API 요청으로 쇄도하지 않도록 적절한 조치를 취해야 합니다. 이를 위해 조절 메커니즘을 마련했습니다.
하나의 동시 모니터링 응용 프로그램을 여러 사용자가 사용할 수 있으며 한 사용자가 여러 세션을 가질 수 있습니다. 따라서 서비스에는 특정 시간 간격 내의 사용자/세션당 허용되는 호출 수에 대해 구성된 제한이 있습니다.
제한에 도달하면 요청이 특정 응답 상태(HTTP 429 요청이 너무 많음)로 표시됩니다. "429 Too Many Requests" 응답이 수신된 후 수행된 모든 후속 호출은 유효한 비즈니스 응답을 얻을 수 있도록 최소 1분 냉각 기간으로 수행되어야 합니다.
메커니즘 개요 mechanism-overview
이 메커니즘은 특정 시간 간격 내에 각 동시 모니터링 엔드포인트에 대해 허용되는 최대 호출 수를 결정합니다.
이 최대 호출 수에 도달하면 서비스가 '429 너무 많은 요청'으로 응답합니다. 429 응답 "Expires" 헤더에는 다음 호출이 유효한 것으로 간주되거나 제한이 만료되는 시점의 타임스탬프가 포함됩니다. 현재 전송률 조절은 1시 이후에 만료됩니다. 분 후 첫 429 응답에서 시작합니다.
조절로 구성된 엔드포인트는 다음과 같습니다.
- 새 세션 만들기: POST /sessions/{idp}/
- 하트비트 호출: POST /sessions/{idp}/{subject}/
- 세션 종료: DELETE /sessions/{idp}/{subject}/
조절은 다음 두 가지 수준에서 구성됩니다.
- 세션: {sessionId} 호출 및
Heartbeat호출에서 전송된 동일한 고유Terminate a session매개 변수와 같습니다. - 사용자: {subject} 호출 시 전송된 동일한 고유한
Create a new session매개 변수입니다.
세션 수준 조절에 대한 제한은 1분 이내에 200개의 요청으로 설정됩니다.
사용자 수준 조절에 대한 제한은 1분 이내에 200개의 요청으로 설정됩니다.
이러한 제한(세션 수준 제한 및 사용자 수준 제한)은 모두 구성 가능하며 유효한 통합 시나리오를 통해 제한에 도달할 경우를 대비하여 업데이트합니다. 이를 위해 지원 팀에 문의하는 것이 좋습니다.
세션 수준 조절에 대한 시나리오:
사용자 수준 조절에 대한 시나리오:
429 응답 예:
HTTP/2 429
date: Thu, 15 Feb 2024 07:54:20 GMT
content-length: 0
vary: Origin
vary: Access-Control-Request-Method
vary: Access-Control-Request-Headers
cache-control: no-store
expires: Thu, 15 Feb 2024 07:54:41 GMT
strict-transport-security: max-age=31536000 ; includeSubDomains
x-xss-protection: 1; mode=block
x-frame-options: DENY
x-content-type-options: nosniff
고객 통합 권장 사항 customer-integration-recommendations
올바른 구현을 통해 고객은 "429 Too Many Requests" 응답을 받지 못합니다.
여전히 Adobe에서는 각 고객이 위에 제시된 기술 세부 정보를 사용하여 "429 너무 많은 요청" 응답을 적절하게 처리할 것을 권장합니다. 응답을 처리할 때 "만료" 헤더를 사용하여 다음 유효한 요청을 보낼 시기를 결정해야 합니다.